【问题标题】:SVN/Subclipse: Returning from a branch to the trunkSVN/Subclipse:从分支返回到主干
【发布时间】:2009-09-03 13:41:30
【问题描述】:

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

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

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

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

有什么想法吗?

【问题讨论】:

标签: svn merge subclipse


【解决方案1】:

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

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

svn merge branchname <Workingcopy-Path>

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

回答您的评论

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

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

这不是您应该的工作方式 在您的简单设置中,这将是有效的,但是,您的后备箱将被删除,所有文件都将被重新添加,但您无法轻松跟踪更改的文件,就像在您的操作中一样 所有个文件都被添加了。

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

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

【讨论】:

  • 我刚刚更新到 SVN 1.6,但是我可以回滚到 1.4。从这个意义上说有什么区别?您能指出 Subclipse 中的并行选项吗?为什么这比重命名分支更好?
【解决方案2】:

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

【讨论】:

  • SVN 的最新版本可以显示来自合并分支的提交信息。至少我的 TortoiseSVN 允许这样做,我怀疑这是 SVN 的一个特性,而不是 Tortoise。
  • 是的,这是真的,但不是重点:您在分支中所做的所有修改最终都会在合并时作为主干中的一次提交。因此,如果稍后在主干中询问在哪个特定修订版中对分支进行了某些更改,那么您得到的只是它是合并操作的一部分。然后,当然您可以在分支中检查更改起源于哪个修订版本,但这肯定需要更多的努力。
【解决方案3】:

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

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

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

【讨论】:

    猜你喜欢
    • 2016-11-23
    • 2013-01-17
    • 1970-01-01
    • 2018-11-08
    • 1970-01-01
    • 2011-03-19
    • 2019-09-13
    • 2014-08-28
    • 1970-01-01
    相关资源
    最近更新 更多