1

这是这个问题的延续:TortoiseSVN 合并分支到主干 如果应该只编辑原始问题,请告诉我,我会这样做。

这是目前的情况。

在我的 PC 上有一个带有工作副本的项目,该副本都是最新的。我在此基础上创建了一个新分支,并将我的工作副本切换到这个新分支。

自从这样做之后,另一个开发人员检查了对主干的一些更改,并且我对分支进行了一些更改。我不认为我们已经更改了相同的文件,所以就任何冲突而言,我们应该做得很好。

我想将我的更改合并回主干。

我选择merge,然后选择merge a range of revision。要合并的 URL 我选择了主干。范围为空白。当我进行测试合并时,它似乎正在将每个添加到项目中的文件添加到项目中 - 它肯定会添加更多文件,然后是自从我从主干分离后发生的更改。当应该只更改 10 或 20 个文件时,它正在执行数百个文件。

我是否应该选择其他开发人员签入到主干的修订范围?还是我应该选择“合并两棵不同的树”?如果我尝试这样做并尝试从主干到我的分支进行测试合并,我会遇到冲突。如果我尝试从我的分支到主干,它看起来很有效。尽管那时我想将所有内容推回主干,因为我已经在我的分支中进行了一些修复,我想在我继续在分支中进行任何更多更改之前将这些修复包含在主干中。

编辑:更多细节以帮助澄清当前设置

我的工作副本以前是主干的一部分。我用乌龟创建了一个新分支并将我的工作副本切换到该分支。所以项目看起来像:/project/branches/mybranch

树干看起来像 /project/trunk

另一个开发人员检查了一些更改到主干,我检查了一些更改到 mybranch。在我对 mybranch 做更多工作之前,我想将所有这些更改合并回主干。当我查看 mybranch 的日志时,只有 3 个签入;153、154 和 159(而 153 只是分支的创建)当我查看主干的日志时,有 4 个,因为它是从主干中拆分出来的:155-158

应该没有冲突,因为我们没有处理相同的文件。

如果我尝试合并 FROM mybranch 并且不指定修订范围,它似乎正在添加项目中的每个文件。即我做了一个测试合并,它显示了数百个添加的文件。

如果我从主干进行测试合并并指定修订版 155-158,看起来它会将主干中的所有更改合并到我的工作副本中。我想如果我这样做,我可以将所有内容都检查到 mybranch 中,此时我只需要弄清楚如何将所有内容合并回主干。

以上所有内容都是使用“合并一系列修订”完成的。

如果我尝试“合并两棵不同的树”并尝试将 FROM trunk 合并到 mybranch(带有 head 修订),我会遇到冲突。

如果我尝试将 FROM mybranch 合并到主干,看起来它可以工作。

从我所看到的来看,我想做的似乎是从 mybranch 到树干的树合并。我只是不确定,因为到目前为止,我被告知要不然。

我想把所有东西都推到后备箱里。我计划对 mybranch 中的代码进行重大更改,这将破坏项目直到它完成,这就是为什么我希望在开始之前将主干保持最新,以防我需要修复任何现有代码。

edit2:当我进行修订的合并范围并选择 mybranch 作为要合并的 url 时,这就是在乌龟窗口中显示的命令:命令:将 /branches/mybranch 的修订 1-HEAD 合并到 C:\Users \xxxx\Documents\Visual Studio 2010\Projects\MyProject,尊重祖先,仅测试

我的工作副本已经在 mybranch 上。所以对我来说,这听起来像是将 mybranch 合并到我的工作副本中,这已经是 mybranch 的一部分,所以基本上它是将 mybranch 合并到自身中?

从主干合并是唯一对我有意义的事情。如果确实从主干合并并选择其他开发人员签入的修订范围,则输出似乎是正确的。那时我只需要将它全部合并回主干。

命令:将 /trunk 的修订 154-158 合并到 C:\Users\XXX\Documents\Visual Studio 2010\Projects\myproject,尊重祖先,仅测试

重要的修订号是:

主干:155-158 - 这些是其他开发人员检查到主干的修订版

mybranch:153、154和159。153是创建的分支。154 和 159 是需要合并到主干的实际文件更改。

我刚刚尝试过的另一个命令似乎也会执行我想要的操作,即如果我从 mybranch 合并到主干并在 FROM 下指定修订版 154 或 159,在 TO(主干)下指定修订版 152。我从来没有尝试过使用除当前版本之外的任何东西,所以我不确定如果我与几个数字后面的版本合并会发生什么。

命令:从 /branches/mybranch,修订 154 合并到 /trunk,修订 152 到 C:\Users\xxxx\Documents\Visual Studio 2010\Projects\myproject,尊重

感谢任何帮助澄清正确的方法来做到这一点。

谢谢

4

1 回答 1

8

要合并的 URL 我选择了主干。

如果您想合并回trunk,那么要合并的URL就是您的branch. 您从存储库版本合并branch到主干的本地副本。合并完成后,您检查后备箱。

更新:对于所有不想阅读以下完整评论的人:正如评论中提到的默克,有必要拥有一个已签出的主干副本。

于 2013-09-24T05:10:47.460 回答