Svn 部署版本时的源代码管理问题

Svn 部署版本时的源代码管理问题,svn,version-control,revision,Svn,Version Control,Revision,我们讨论了如何在UAT未关闭状态下部署UAT已关闭而无修订的生产修订 我们使用的是SVN,我们发现,如果没有事先对同一文件进行的修订,我们就不能只进行修订 让我在这个例子中解释一下: 我们对同一文件进行了3次修订: r1:UAT关闭(准备部署) r2:UAT未关闭(未准备就绪) r3:UAT关闭(准备部署) 现在,我只想部署UAT已关闭的更改(例如r1和r3)。 在SVN中,这是不可能的,因为r3也包含r2更改 你是怎么做到的?也许是分支?还是只取r1,等到r2关闭 谢谢根据您的说法,我建议对每

我们讨论了如何在UAT未关闭状态下部署UAT已关闭而无修订的生产修订

我们使用的是SVN,我们发现,如果没有事先对同一文件进行的修订,我们就不能只进行修订

让我在这个例子中解释一下: 我们对同一文件进行了3次修订:

r1:UAT关闭(准备部署) r2:UAT未关闭(未准备就绪) r3:UAT关闭(准备部署)

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

你是怎么做到的?也许是分支?还是只取r1,等到r2关闭


谢谢

根据您的说法,我建议对每个UAT问题进行分支,然后在UAT关闭时将它们合并回主干

这样你就可以:

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
然后,您可以将功能分支合并到暂存分支中,并在合并到live之前在那里执行额外的集成测试。这有助于解决当两个功能分支合并在一起时可能出现的任何冲突问题


在跨多个开发人员和多个发行版进行分支时,要记住的另一件事是找到某种方法来跟踪哪个分支上的更改,以及哪个分支合并到了哪里。这将完全取决于您的工作环境和实践。

我几乎总是建议对每个版本进行分支。何时完成这项工作通常取决于单个站点,但通常是在发布进行UAT测试之前。这允许您删除尚未为最终版本做好准备的更改

因此,创建一个发布分支,您可以将所有UAT更改放在那里。您可以从R1分支,然后在R3中合并更改,或者从R3分支,然后使用
svn merge
(请参阅Subversion联机手册中的)

现在,您可以在不干扰当前项目的情况下添加和减去用于发布的更改。如果R2在以后的某个日期获得了发布的批准,则可以将其合并回发布分支


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

您如何解释以下情况:A)他们可能没有使用稳定的主干方法,而是使用不稳定的主干方法,其中只在需要发布时才创建分支。B) 如果R3中的变化取决于R2中的变化会怎样?@jgifford如果R3中的变化取决于R2中的变化,那么我看不出它是如何通过UAT而不处于准备启动的状态的?我没有做太多的UAT,但我认为这是正确的?对于任何版本控制来说,最好的方法总是尝试使用一个稳定的主干。如果您当前使用的是一个不稳定的主干,那么您可能需要考虑创建一个稳定的主干,并围绕它重构您的版本控制和发布策略。我想指出,这是一个相对简单的设置,旨在为您提供可能需要的指示。许多版本控制设置取决于您的工作方式、开发人员数量、工作类型等。