2

我有一个前段时间从主干创建的分支。由于我创建了分支,所以我没有碰过树干。现在,我想从分支返回到主干。这是一个非常简单的案例,因为没有太多合并要做。后备箱没有任何变化。分支可以完全替代主干。

在我看来,我有两个选择:

  1. 删除主干(将其重命名为其他名称,稍后删除)并将分支重命名为主干。
  2. 将分支合并到主干(将我的工作副本移动到主干并使用分支中的合并命令)。

我不确定哪个选项是首选。维护修订上下文对我来说很重要(不要破坏修订图)。

有什么想法吗?

4

3 回答 3

4

你真的应该使用合并选项。由于所有更改都将在 1 次提交中丢失修订信息的论点可以忽略不计,因为 subversions 合并跟踪将保留此信息。如果您仍然有 1.5 之前的安装,您可以在提交消息中记下修订范围和分支路径。

由于您没有更改主干中的任何内容,因此合并将是一件轻而易举的事,正如您所说:

svn merge branchname <Workingcopy-Path>

(当然你的工作副本应该指向主干)

回复您的评论

svn 1.4 没有合并跟踪,所以你不应该回滚

为什么不应该将分支重命名为主干:

这不是您应该工作的方式在您的简单设置中,这将起作用,但是,您的主干将被删除,所有文件将再次添加,但您无法轻松跟踪更改的文件,因为在您的操作中添加了所有 文件.

如果合并,只有您在分支中更改的文件才会显示为已修改。

此外,旧主干的所有工作副本都将失效(当您独自工作时,这可能并不重要),因此您需要再次检查它们。

于 2009-09-03T15:53:02.513 回答
0

在您的情况下,我更喜欢第一个选项您在分支中所做的所有修改的另一种方式将作为主干的一个修订应用。因此,您会丢失这些更改的修订信息。如果将分支移动到旧主干目录的位置,修订信息将保持不变。

于 2009-09-03T13:50:06.143 回答
0

我认为最简单的方法(不知道是否最好这样做)是使用“svn move”以便您执行第一个选项。

svn 中的复制和移动应该像文件操作一样工作,这些更改也是版本化的。

编辑:我的回答几乎就像 VonC 提到的先前主题的答案之一,所以你应该看看这个答案

于 2009-09-03T13:59:14.543 回答