1

Mercurial の「diff」コマンドで unix または unxutilpatchコマンドと互換性のある出力を生成するにはどうすればよいですか?

Mercurial をインストールしていない同僚に送信できるパッチ ファイルを作成する必要があります。


使用してみましたが、適用時にコマンドhg diff -r 3:5 > patch1.diffからエラーが発生します。patch(待ってください、機会があればすぐにエラーメッセージを投稿します....)


OK、これは私が 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を行末として使用する必要があります。オプション「--binary」が指定されていない限り、LFを含むファイルは、「アサーションに失敗しました、ハンク、ファイルpatch.c、行343」というエラーが発生する可能性があります。

私は使用--binaryしました、そしてそれはうまくいきました。

于 2013-02-12T17:41:08.840 に答える