我们讨论了如何部署到UAT关闭的生产修订,而没有UAT非关闭状态的修订。
我们正在使用SVN,我们发现我们无法在没有事先修订同一文件的情况下进行修订。
让我在这个例子中解释一下: 我们对同一个文件进行了3次修改:
r1:UAT关闭(准备部署) r2:UAT未关闭(未准备好) r3:UAT关闭(准备部署)
现在我只想部署UAT关闭的更改(例如r1和r3)。 在SVN中,这是不可能的,因为r3也包含r2变化..
你是如何让这个工作的?也许分支?或者只是拿r1等待直到r2关闭?
感谢
答案 0 :(得分:3)
根据你所说的,我建议为每个UAT问题进行分支,然后在UAT关闭时将它们合并回Trunk。
你有这样的方式:
Main Branch
- Branch R1
- Branch R2
- Branch R3
分支1,2和3都是在同一时间开始,但R1和R3在R2之前是UAT已关闭,并且决定使用你拥有的东西。
因此,您可以将R1和R3合并到Main中,但将R2保留在原来的位置。
如果你要参加这个过程,我也建议:
Main Branch
- Staging Branch
- - Branch R1
- - Branch R2
- - Branch R3
然后,您可以将功能分支合并到暂存分支中,并在合并到实时之前执行额外的集成测试。这可以帮助解决在将两个要素分支合并在一起时可能弹出的任何冲突幸福问题。
要考虑跨多个开发人员和多个版本的分支,要记住的另一件事是找到一些方法来跟踪哪个分支上的更改,以及哪个分支已合并到哪里。这完全取决于您的工作环境和实践。
答案 1 :(得分:2)
我几乎总是建议为每个版本分支。完成此操作通常取决于单个站点,但通常在发布之前进行UAT测试。这允许您删除尚未为最终版本准备的更改。
因此,创建一个发布分支,您可以将所有UAT更改放在那里。您可以从R1分支,然后合并R3中的更改,或从R3分支并使用svn merge
退出更改R2(请参阅Subversion在线手册中的Undoing Changes)。
现在,您可以在不干扰当前项目的情况下添加和减少发布的更改。如果R2确实在以后获得批准用于发布,则可以将其合并回发布分支。
我不建议您为每个UAT事件创建一个单独的分支。你最终得到的是很多分支和很多合并。您最终会单独测试每个更改并批准它们,然后发现它们会相互干扰。