2011-01-11 132 views
2

我们讨论了如何部署到UAT关闭的产品修订版,但未修改UAT未关闭状态。部署版本的源控制问题

我们正在使用SVN,我们发现我们无法在没有对相同文件进行预先修订的情况下进行修订。

让我来解释一下这个例子: 我们有3个版本的同一文件进行:

R1:UAT关闭(准备部署) R2:UAT未闭(未准备好) R3:UAT关闭(准备部署)

现在我只想部署UAT关闭的更改(例如r1和r3)。 在SVN中,这是不可能的,因为r3也包含r2的变化..

你如何使这个工作?也许分支?或者只是采取r1并等到r2 UAT关闭?

感谢

回答

3

根据你说的话,我建议分支每个UAT问题,然后把它们合并到主干时,UAT被关闭。

这样,你必须:

Main Branch 
- Branch R1 
- Branch R2 
- Branch R3 

分行1,2和3都开始在同一时间,但R1和R3 UAT关闭之前R2是,并作出决定去与你拥有的一起生活。

因此,您可以将R1和R3合并到Main中,但将R2保留在原来的位置。

如果你是,虽然在这个过程中去,我也建议:

Main Branch 
- Staging Branch 
- - Branch R1 
- - Branch R2 
- - Branch R3 

然后,您可以合并您的功能分支到临时分支,并合并到现场之前执行额外的有集成测试。这可以帮助解决两个功能分支合并在一起时可能弹出的任何冲突问题。

另一件需要记住跨多个开发人员和多个版本的分支是要找到某种方式来跟踪哪些分支上发生了哪些更改以及哪些分支已合并到哪里。尽管如此,这完全取决于你的工作环境和实践。

+0

你如何解释以下几点:A)他们可能不会使用稳定的主干方法,而是不稳定的主干,其中只有在需要发布时才会创建分支。 B)如果R3中的变化取决于R2中的变化怎么办? – jgifford25 2011-01-11 16:15:01

2

我几乎总是建议为每个版本分支。完成此操作通常取决于单个站点,但通常在发布用于UAT测试之前。这使您可以移除尚未准备好用于最终版本的更改。

因此,创建一个发布分支,你可以把你所有的UAT变化放在那里。您可以从R1分支,然后合并R3中的更改或R3中的分支,并使用svn merge(参见Subversion在线手册中的Undoing Changes)取消更改R2。

现在,您可以添加和减去用于版本的更改,而不会干扰当前项目。如果R2确实在以后获得发布批准,则可以将其合并回发布分支。

我不建议你为每个UAT事件创建一个单独的分支。你最终得到的是很多分支和大量的合并。您最终会逐个测试每个更改并批准它们,然后再发现它们会相互干扰。