3

   svn を使用して、コミットする前にプロジェクトの差分を生成するとします。プロジェクト内のすべてのファイルに対して 1 つの差分を作成することは、変更をコミットする前に確認するための非常に優れた方法です。ただし、各ファイルを再度開かずにこれらの変更を編集し、単純に差分を編集して再適用したい場合があります。だから私はそのようなキーマップを作成しました(かなりの量の周囲の行で統一されたフォーマットを使用するようにsvn diffをセットアップしました):

map scde :w! tmpdiff<cr>:!svn revert -R .<cr>:!patch -p0 <tmpdiff<cr>

   機能しますが、部分的にしか機能しません。追加された行を編集できますが、行を削除済みとしてマークしたり、別の行を追加したりする場合、指定された差分範囲が差分に存在する実際のテキストと一致しないため、問題が発生します。行を追加するなどの単純な変更で更新できますが、より高度な変更を行うと面倒で、すぐに複雑になります。範囲が自動的に正しく更新されるように diff を編集する方法はありますか? emacs にはこのための diff モードがあることがわかりましたが (ただし、試したことはありません)、vim を使用してニーズの解決策を見つけることができませんでした。誰かがいくつかの提案をすることができますか?

4

1 に答える 1

5

をご覧くださいrediff。パッチ ファイル内のオフセットを自動的に修正します。

于 2012-05-10T08:18:26.790 に答える