mercurial diff + unxutil“patch”

时间:2013-02-12 17:08:16

标签: mercurial diff patch

如何使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.

1 个答案:

答案 0 :(得分:1)

没关系,这是一个可以克服的记录在案的问题(有一个非常不好的错误消息)。来自http://gnuwin32.sourceforge.net/packages/patch.htm

  

在MS-Windows上,补丁文件必须是文本文件,即CR-LF必须是   用作行结尾。带LF的文件可能会出错:“断言   失败,hunk,文件patch.c,第343行,“除非选项'--binary'是   给出。

我使用--binary并且效果很好。