在我的项目中,我有一个PNG文件,我想把它移到另一个目录上。 我做完了
mv f.png foo/f.png
hg addremove
hg diff > patch.diff
但是我在补丁中得到了这个:
diff -r f0a573ab03b1 Bundles/rc/f.png
Binary file Bundles/rc/f.png has changed
diff -r f0a573ab03b1 Bundles/media/rc/f.png
Binary file Bundles/media/rc/f.png has changed
因此,当我申请时,它不起作用......有人可以帮助我吗?
答案 0 :(得分:2)
首先,您应该使用hg mv
而不是mv
。这样,Mercurial就知道你重命名了这个文件。当您使用addremove
时,您会通过删除文件然后添加文件来污染您的历史记录。
下一个问题是补丁。补丁格式不支持二进制文件。无法为图像创建补丁。
尝试使用hg export --git
代替hg diff
。请参阅此问题:Why are my dlls not included in my exported patches?
hg export
和hg import
知道如何处理各种极端情况(例如保留提交消息)。