当前位置 : 主页 > 网络安全 > 测试自动化 >

当自动化测试通过时,如何自动进行svn合并?

来源:互联网 收集:自由互联 发布时间:2021-06-19
每次提交到’trunk’后,我们会自动对trunk进行一系列测试.当这些测试通过时,我想将自动合并到名为“tests-passed”的分支中.当测试失败时,不会发生合并,但是一旦在下一次或稍后提交的“
每次提交到’trunk’后,我们会自动对trunk进行一系列测试.当这些测试通过时,我想将自动合并到名为“tests-passed”的分支中.当测试失败时,不会发生合并,但是一旦在下一次或稍后提交的“主干”上修复了问题,就应合并所有更改.

关键是要有一个与trunk相同内容的分支,但这比’trunk’更加理智,因为至少自动化测试已经过去了.

我有一个尝试手动执行此操作的脚本,但这是一个使用自定义属性的黑客,并不总是正常工作 – 正如我刚刚发现的那样.我如何才能最好地让Subversion做到这一点?

只要您确定了新的主干版本< somerev>,就会在测试的工作副本的根目录下运行这些命令.已通过测试:

svn update
svn merge http://example.com/svn/myproject/trunk -r 0:<somerev>
svn commit -m "merged trunk revisions up to <somerev> into tests-passed"

无论何时使用merge命令,SVN都会在svn:mergeinfo属性中记录合并.因此,上面的命令应该自动确定范围0中的哪些修订:< somerev>有资格合并,不包括已经完成的任何合并.

就像你在评论中说的那样,预计不会发生冲突.但有时我看到在合并包含重命名的一系列SVN修订版时,无论如何都会发生意外冲突.要消除这些冲突,可以使用–accept theirs-full选项和merge命令始终接受trunk状态.

网友评论