web-dev-qa-db-ja.com

パッチを分割して編集する方法は?

大きなパッチを小さな(互いに素な)パッチに分割する必要がある場合があります。含まれている個別の機能ごとに。

通常、私は標準のvim yank/ddコマンドと分割ウィンドウ切り替えを介してそれを行います。

しかし、そのような種類の編集に役立つツール/ vimトリックはありますか?

たとえば、次のようなコマンドのサポート:次の3つの完全なハンクを右に開いたパッチファイルに移動します

10
maxschlepzig

Patchutils [1]を調べてみてください。 vimの部分については、パッチをナビゲートするのに役立つ小さなvimプラグインを作成しました:diff_navigator [2]。

[1] http://cyberelk.net/tim/software/patchutils/

[2] http://www.vim.org/scripts/script.php?script_id=2361

7
Petr Uzel

ややトピックから外れていると思いますが、それでも役立つと思います。

Gitを使用して開発を行う場合は、変更全体を、それぞれ1つの機能を具体化する小さな「ハンク」に簡単に分割できます。機能ごとに1つのコミットが作成され、gitのgit-format-patchを使用してパッチを作成(さらには署名して適切に属性付け)できます。その方法を概説しました ここ

5
tante

私のSuseにはsplitdiffutilがあります。これは次のように機能します。

$ splitdiff -a tmp.179639.patch
Wrote >tmp.179639.patch.part001
Wrote >tmp.179639.patch.part002
3
akond

this を使用して大きなパッチを小さなチャンク(ファイルごとまたはすべてのハンク)に分割し、マージする必要がある場合は、 patchutilsPetr Uzelの回答で言及されたパッケージ

0
Dror Cohen