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


10

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

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

しかし、そのような編集を支援するツール/ vim-tricksはありますか?

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


あなたはまた、上で見てみたいことがありますunix.stackexchange.com/questions/618/how-to-merge-patches
マチェイPiechotka

1
ところで、なぜ人々は質問に答えますが、それを賛成投票するのに十分/明確ではないのですか?!?;)
maxschlepzig

回答:


7

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


1
diff_navigatorURLは明らかであるvim.org/scripts/script.php?script_id=2361 Emacsは、同様の機能を備えていEdiffとSMergeモード
リッカルドMurri

2
答えを拡張して、より包括的にすることはできますか?...素晴らしいことだ互いに素なものの中に大きなパッチを分割するように設定patchutilsから何ユーティリティの使い方の例を追加
maxschlepzig

5

やや話題から外れていると思いますが、それでも有用だと思います。

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


3

私のSuseにはsplitdiff、次のように機能するutilがあります。

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.