2017-02-23 74 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源文件,可能是一个更强大的方法。)

相关问题