1

如何使 mercurial “diff”命令产生与 unix 或 unxutilpatch命令兼容的输出?

我需要创建一个可以发送给没有安装 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>补丁 < ../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.
4

1 回答 1

1

没关系,这是一个可以克服的记录问题(带有非常糟糕的错误消息)。从http://gnuwin32.sourceforge.net/packages/patch.htm

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

我用过--binary,效果很好。

于 2013-02-12T17:41:08.840 回答