私は何とかあなたが持っているリポジトリから2つのバージョンを抽出します。
これらの両方を取得したら、diff -c old_version new_version > versions.diff
とすることができます。
使用すると、1つのgitリポジトリでそれらを持っている場合は、することができます
git diff old_commit:path/to/the_file path/to/the_file > versions.diff
その後、あなたができるpatch -o updated_version old_version versions.diff
、およびupdated_version
が適用された変更を持つことになります。
これは、更新が必要な行の周りに十分なコンテキストが保存されている(ファイルの他の部分が独立して変更できる)場合に有効です。
より一般的なケースでは、変更の性質を理解し、単純な文字列比較を超える特定の構造を探すインテリジェントなスクリプトを書く必要があります。
XMLの場合、XSLT変換は当然のことですが、好みの言語とそのXML処理機能を使用するものと思われます。ノード構造レベル(例えば、XPathを使用する)で動作するそのようなスクリプトは、diff
が失敗するXMLフォーマット変更の影響を受けない。
JavaScriptの場合、それは難しく、変更の性質に大きく依存します。 (おそらく、JSソースファイルとは対照的に、JSコードを猿でパッチすると、より堅牢なアプローチになるかもしれません。)