如何使mercurial“diff”命令生成与unix或unxutil patch
命令兼容的输出?
我需要创建一个补丁文件,我可以将其发送给没有安装Mercurial的同事。
我已尝试使用hg diff -r 3:5 > patch1.diff
,但在应用patch
命令时会收到错误。 (等一下,我会尽快发布错误信息......)
好的,这是我上传到bitbucket的测试用例:
hg clone https://bitbucket.org/jason_s/test-patch-apply P2base
hg update -r 2 -R P2base
hg diff -r 2:4 -R P2base > p2base.patch
rm -r P2base/.hg
cd P2base
patch < ../p2base.patch
我在Windows PC上看到了这个:
C:\ tmp \ hg \ P2base&gt;补丁&lt; ../ p2base.patch
patching file bar.txt
Assertion failed: hunk, file ../patch-2.5.9-src/patch.c, line 354
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
答案 0 :(得分:1)
没关系,这是一个可以克服的记录在案的问题(有一个非常不好的错误消息)。来自http://gnuwin32.sourceforge.net/packages/patch.htm:
在MS-Windows上,补丁文件必须是文本文件,即CR-LF必须是 用作行结尾。带LF的文件可能会出错:“断言 失败,hunk,文件patch.c,第343行,“除非选项'--binary'是 给出。
我使用--binary
并且效果很好。