2017-02-23 6 views
0

2つの異なるバージョン(1つはオリジナルで、もう1つは修正済み)を持つSAPUI5(javascriptおよびxml)のプロジェクトがあります。 私はそれらの間のすべての変更を文書化/ログする必要があるので、元のコードをアップグレードするときに同じ修正を再度適用できるようにします。同じJavascript/XMLプロジェクトの2つのバージョンを比較してドキュメント化する必要があります

また、プロジェクトはGITリポジトリ(Bitbucket)にもありますが、初期コミットには初期バージョンはなく、すでに変更されています。

これを行うには、(時間がかからない)最善の方法だと思いますか?

Beyond Compareよう

答えて

1

使用git diffやソフトウェア、ありがとうございます。

2

git diff <commit hash 1> <commit hash 2>では、違いがわかります。
git cherry-pickを使用すると、あるコミットから別のコミットに変更を適用できます。

1

私は何とかあなたが持っているリポジトリから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コードを猿でパッチすると、より堅牢なアプローチになるかもしれません。)

関連する問題