我在SAPUI5(javascript和xml)中有一个项目,它有两个不同的版本(一个原始版本,另一个版本有修改版本)。 我需要记录/记录(word?)它们之间的所有变化,以便将来我们可以在升级原始代码时重新应用相同的修改。
另外:该项目也在GIT存储库(Bitbucket)中,但初始提交没有初始版本,它有一个已经修改过的版本。
您认为这样做最好的方式(耗时少)?
谢谢,
答案 0 :(得分:2)
使用git diff <commit hash 1> <commit hash 2>
,您可以看到差异
使用git cherry-pick
,您可以将更改从一个提交应用到另一个提交。
答案 1 :(得分:1)
使用git diff
或Beyond Compare
等软件。
答案 2 :(得分: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
将应用更改。 (您也可以将差异文件提供给git apply
。)
这适用于简单的情况,当需要更新的行周围保留足够的上下文时(文件的其他部分可以独立更改)。
对于更一般的情况,您必须了解更改的性质,并且可能编写一个智能脚本,该脚本可以查找除简单字符串比较之外的特定结构。
对于XML,XSLT转换似乎很自然,或者使用您喜欢的语言及其XML处理功能的东西。这样一个在节点结构级别上工作的脚本(例如使用XPath)将不受XML格式化更改的影响,diff
将失败。
对于javascript,它更难,而且很大程度上取决于更改的性质。 (也许猴子修补JS代码,而不是JS源文件,可能是一种更强大的方法。)