如何防止最新版本的文件被SVN中的先前版本覆盖

时间:2011-11-27 16:53:32

标签: svn tortoisesvn

我有一个名为“File1.txt”的文件,它位于以下文件夹中

d:\开发\ File1中(V1)的.txt

(v1) - >表示版本号

当文件准备好生产时,我们有一个发布过程,通过该过程,文件在v周内被移动到Prod。让我们假设生产文件夹是

d:\ PROD \ File1中(V1)的.txt

如果我们在Dev中对File1.txt进行任何进一步的更改,那么我们将其发布到生产中(2周时间内)

现在我们将Dev和Prod文件夹状态如下所示 DEV:D:\ Dev \ File1(v2).txt - >今天

PROD:D:\ Prod \ File1(v2).txt - > 2周时间

有时我们需要将紧急版本投入生产,以便我们可以绕过正常的2周发布流程并立即将文件转移到生产环境中。

这意味着Dev和Prod文件夹状态如下
DEV:D:\ Dev \ File1(v3).txt - >今天

PROD:D:\ Prod \ File1(v3).txt - >今天

然而,作为正常发布过程的一部分,在2周时间内,文件(2).txt将覆盖紧急版本File1(v3).txt

这意味着Dev和Prod文件夹状态如下
从现在起2周内 ===================
DEV:D:\ Dev \ File1(v3).txt

PROD:D:\ Prod \ File1(v2).txt

如何防止先前版本覆盖最新版本的文件?

1 个答案:

答案 0 :(得分:0)

以版本控制术语表示您的流程:您的项目中基本上有三个活动分支。它们是开发(可能是主干),发布候选和生产。在正常的工作流程中,您将发布候选版本从开发分支中分离出来,让它煮两周,然后在两周后将其作为生产分支。

如果您有修补程序,它将应用于生产和开发。此外,您应该将其应用于任何候选发布版本分支。 由于您的错误实际上归结为生产分支文件(v2)覆盖hotfixed文件(v3),这只是意味着您尚未将此修补程序应用于候选发布版。您有两种方法可以解决这个问题:

  1. 向所有开发人员明确表示将修补程序应用于所有三个分支。
  2. 将发布候选分支合并到生产中,而不是替换生产。 (不确定这在所有情况下都会在技术上有效。)