質問

うまくパッチの適用は私のソースツリーとしたものであり、通常の -p 剥離の問題です。 patch きのファイルへのパッチ.

具体的には、私の質問は、どのように読み解釈の .rej ファイル patch 生成に失敗した場合には、数hunks.最も議論の patch/diff 見含めないでください。

役に立ちましたか?

解決

簡単な例:

$ echo -e "line 1\nline 2\nline 3" > a
$ sed -e 's/2/b/' <a >b
$ sed -e 's/2/c/' <a >c
$ diff a b > ab.diff
$ patch c < ab.diff
$ cat c.rej
***************
*** 2
- line 2
--- 2 -----
+ line b

あなたが見ることができるように古いファイルは2行目と新しいファイルが含まれているの線bが含まれている必要があります。しかし、それは実際に(つまり、拒否ファイルに表示されていない)線cが含まれています。

実際には、このような問題を解決する最も簡単な方法は、パッチを適用して、把握して手でコードを比較するファイル内の適切な場所でそれを挿入し、の.diff / .patchファイルファイルから差分フラグメントを取ることです、どのような行が実際に競合が発生します。

または - 代わりに:。、元のファイル(無修正)を取得し、それにパッチを適用して、ファイルにマージ三方を実行します。

他のヒント

ウィグルには、パッチが成功しない場合にファイルを.rej適用するための素晴らしいツールです。

私は専門家ではないですが、いまの対応パッチファイルにしてしまいましたが、まず私の追加方法を明確にしか読みに基づいて、私の理解する情報が含まれている.

.rej ファイルを聞いてください

  • の違いの元とゆったりとしています。rejファイル
  • の問題コードの始まりに元のファイルなどのラインで とることができるファイル
  • のコードの始まりの新しいファイルは、多くのラインでとることができるファイルです。

なのでこのようなメッセージ、初のmy.rejファイル:

diff a/www/js/app.js b/www/js/app.js (rejected hunks) @@ -4,12 +4,24 @@

いたように、これまでとは違った自分の問題ファイルwww/js/appの違いを指摘してい a/www/js/app.js 第一線とゆったりとしています。rejファイルとして b/www/js/ 開始イ4のについては枚挙に暇がありません12ラインの前の部分にはカンマで @@ -4,12, +4,24 @@ 線二)、開始ライン4新しいバージョンのファイルなど地域の見所があり24行(この後のカンマで @@ -4,12, +4,24 @@.

更なる情報についての概要パッチファイルを含むいただいた情報上記の注意事項など詳細は追加された行数および/または間のファイルのバージョン) http://blog.humphd.org/vocamus-906/.

修正明確化を歓迎。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top