如何在不切换的情况下提交不同的svn分支

时间:2012-11-30 11:58:30

标签: svn branch commit

我正在处理通常在主干中的代码,但由于最近的更改,我不得不将工作区切换到分支。

在分支机构工作时是否可以在主干中提交任何更改而不实际将项目切换到主干

我基本上想要在trunk和branch中提交更改,而不是一次又一次地来回切换

3 个答案:

答案 0 :(得分:5)

简短回答:否

这就是上帝创造svn switch的原因。它允许您在不丢失工作的情况下更改工作目录的基础分支。

以这种方式思考:开发人员多少次破坏了某些东西,因为他们已经对自己说过了“嘿,”我不需要对此进行测试。这是次要更改“

即使Subversion允许你做你想做的事,它仍然是个坏主意。您基本上是在代码库中进行更改,而没有确保它们首先工作的真正方法。这就是为什么Subversion要求您拥有一个工作目录,然后才能进行更改 * 。你会如何测试你的变化?

如果您不想使用svn switch,因为您不想丢失工作,可以执行以下操作:

  • 将整个工作目录复制到另一个位置,然后在其中一个位置使用svn switch来制作该中继。
  • 在您的分支上完成您的工作。提交更改并记下修订号。现在,要么svn cosvn switch要获得中继工作副本。然后使用svn merge -r将您的更改合并到主干。当然,在提交之前测试您的更改。

* Subversion确实允许mkdircpmvrm直接在网址上工作,但这主要是为了允许您无需创建工作目录即可操作分支。

答案 1 :(得分:0)

检查不同文件夹中的行李箱 在行李箱中进行更改,然后检查它们。 然后将它们合并到分支,并检查合并。

答案 2 :(得分:0)

您无法提交WC网址之外的路径(请参阅svn info WCROOT

上述规则意味着 - 如果WC根位于一个级别,即分支和主干的共同父级,则可以同时提交到两个位置(分支和主干将是WC内的子目录)。普通父级是repository-root,为了签出整个repo,你可以使用--depth和--setdepth选项提交/更新