パッチを変更ソースと同期したままにする

パッチを変更ソースと同期したままにする

ファイルFがF 'に変更されたときに正しく機能するように、ファイルFで動作する「パッチ」Pを生成する標準オプションはありますか?

したがって、P'(F') が P(F) と同じ変更を生成するように P を P' に変更するメカニズムがあるか、好ましくは F&F' に使用できるように弾性 P を持つようになります。

現在、私は正規表現の検索と置換を使用してこれらのパッチを作成していますが、このような作業を行う標準的な方法があるかどうかを知りたいと思います。

ベストアンサー1

sed私はこのようなものを使用することを本当にお勧めしません。問題は、パッチが適用されても「ぼやけて」現れることが多いことです。つまり、一部のコンテキスト行が完全に一致しないことを意味します。これは通常、デフォルトの周辺コードがわずかに変更されたことを意味しますが、パッチが間違った場所に適用されたことを意味する可能性があります(これが起こったことを見たことがありますが、それは悪くもデバッグも簡単ではありません)。

また、パッチがきれいに適用されても、意味上、もはや意味がないかもしれません。ただし、これをキャッチするには、パッチ付きコードで行われた変更を理解する必要があります。

指定された理由により、少なくともぼかしに適用されるすべての項目を確認することをお勧めします(そして、表面的にオフセットに適用されるすべての項目も確認します)。基本的な3行以上のコンテキストを持つことも良い考えかもしれません。

大きな警告を念頭に置いて比較的簡単に行う1つの方法は、バージョン管理システム、おそらく次のような高度な分散システムを使用することです。mercurialまたはgit。 2つの間の選択に応じて意見が異なります。 MercurialはGitより前のCVSやSVNに似ており、おそらくより良い学習曲線も持っています(Whikle Gitは機能が豊富であると言われています)。

Mercurialには次のものがあります。Mercurial Queue (MQ) 拡張このような状況のためです。スティーブ・ロチェの作品です。ブログ投稿MQの使用に関する非常に良い紹介です。もう一つの良い内容は次のとおりです。MQガイドMozilla開発者サイト。

時々、patchutilsそれはまた便利かもしれません。

おすすめ記事