2017-02-23 73 views
0

我有一個項目在SAPUI5(JavaScript和XML),它有2個不同的版本(一個原始的和一個修改)。 我需要記錄/記錄(單詞?)它們之間的所有更改,以便將來我們可以在升級原始代碼時重新應用相同的修改。我需要比較和文檔相同的Javascript/XML項目的兩個版本

另外:該項目也位於GIT存儲庫(Bitbucket)中,但初始提交沒有初始版本,它具有已修改的版本。

你認爲這樣做會是最好的方式嗎?

謝謝

回答

1

使用git diff或類似Beyond Compare軟件。

2

git diff <commit hash 1> <commit hash 2>你可以看到不同之處。
使用git cherry-pick您可以將更改從一個提交應用到另一個提交。

1

我會以某種方式從您擁有的存儲庫中提取兩個版本。

一旦你有他們兩個,你可以diff -c old_version new_version > versions.diff

如果你在一個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將應用的變化。 (您也可以將diff文件填入git apply。)

這適用於簡單情況,當需要更新的行周圍保留足夠的上下文(文件的其他部分可以獨立更改時)。

對於更一般的情況,您必須瞭解更改的性質,並可能編寫一個智能腳本,查找除簡單字符串比較之外的特定結構。

對於XML和XSLT轉換看起來很自然,或者使用您最喜歡的語言及其XML處理功能的東西。在節點結構層面(例如使用XPath)工作的這種腳本將不受XML格式更改的影響,其中diff將失敗。

對於JavaScript來說,這很難,而且很大程度上取決於更改的性質。 (也許猴子補丁的JS代碼,而不是JS源文件,可能是一個更強大的方法。)

相關問題