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

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

場合によっては、含まれている個々の機能ごとに大きなパッチをより小さい(連続していない)パッチに分割する必要があります。

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

しかし、このタイプの編集に役立ついくつかのツール/ vimトリックはありますか?

たとえば、次のコマンドがサポートされます。開いているパッチファイルの右側に、次の3つの完全なブロックを移動します。

答え1

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

答え2

話題から少し外れているようですが、まだ役に立つと思います。

開発にgitを使用すると、全体の変更をそれぞれ機能を含む小さな「チャンク」に簡単に分割できます。機能ごとに1つのコミットで終わり、gitを使用してgit-format-patchパッチを作成(署名して正しく属性付け)できます。これを行う方法を説明しました。ここ

答え3

Suse用のutilがあり、splitdiff次のように動作します。

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

答え4

あなたはそれを使用することができますこれ大きなパッチを小さなチャンク(ファイルごとまたはチャンクあたり)に分割してマージする必要がある場合は、次のようにします。パッチツール言及されたパッケージピーター・ユーゼルの答え

関連情報