我可以在不执行合并的情况下从主干更新分支吗?

时间:2010-03-03 15:17:00

标签: svn merge branch ankhsvn trunk

我可能只是没有想到这一点,或者我可能根本没有意识到Subversion中已有的选项(我当然不是专家)。

我只是想知道,如果我已经创建了一个分支来开始处理一些新功能,如果有一种更简单的方法可以使分支与 trunk 保持最新状态修改,而不必经历合并一系列修订的所有麻烦。我希望能够简单地更新并从trunk(分支)获取所有修订,而我提交的更改只会影响分支。这可能吗?我问的是否有意义?

我认为这与合并一系列修订并不一定有所不同;只是我使用AnkhSVN,它在允许合并之前执行所有这些最佳实践检查,有时感觉它比它需要的复杂得多。我的想法是,我希望让我的分支与其他开发人员可能对主干进行的任何提交保持同步,这样当我最终将我的分支合并到主干时,一切都会进行(如)顺利(尽可能)。

5 个答案:

答案 0 :(得分:32)

让您的分支机构与最新的主干签到日期保持一致称为合并。

我知道合并有时可能是一场皇室噩梦,但这正是合并的原因。

答案 1 :(得分:23)

TL; DR;不,你必须合并,这是一些指示

它并不像你想象的那么糟糕。我将概述我使用的命令行中的步骤。我将使用vimidiff来管理你可以使用Meld或你喜欢的其他diff工具的冲突。命令前面有哈希'#'标记

<in branch first time from copy>
# svn log --stop-on-copy | tail 
<read the revision that was the copy instruction in this case r229>
# cd ../../trunk
# svn up
<I make note of the latest rivision which is r334>
<now I go back to the branch>
# cd ../branches/branch 
# svn merge -r229:334 svn://url.to.svn.server/project/trunk
<a whole bunch of stuff happens>
< now I check for conflicts >
# svn status | grep ^C
<which outputs something like>
C       public/tools/Diagnostic.class.php
C       public/domain/Report_Setup_Parameter.class.php
C       public/modules/mReports.module.php
<I now revert all these and manually merge them>
# svn revert public/tools/Diagnostic.class.php
...
<revert done now manuall doinng the merge
# vimdiff public/tools/Diagnostic.class.php ../../trunk/public/tools/Diagnostic.class.php
...
<now all the changes are done>
# svn commit -m "Merging trunk into branch 'branch' r:229:334"
commited revision 335

完成,如果你这样做,那么没有太多变化。第一次合并后,您需要使用上次合并的修订版#。因此,将来的某个时间命令将在svn日志中查找最后一次合并的修订版本,在本例中为335.合并命令看起来像是使用

# svn merge -r335:370 svn://url.to.svn.server/project/trunk

所有其他步骤都相同。

答案 2 :(得分:3)

  

这个想法是我想保留我的   任何提交都是最新的   其他开发商可能正在制作   干线让我最终做到了   将我的分支合并到主干,   一切顺利(如同)   可能的)。

要实现这一点,您需要从trunk进行范围修订合并。实际上,不时对分支进行这种合并是一种很好的做法,以便与主干中发生的事情保持同步。

我不知道AnkhSVN的工具,但'纯'SVN有非常好的工具,使合并操作非常简单。 TortoiseSVN对于Windows来说是一个很棒的工具,如果你喜欢Netbeans,那么合并的图形支持也非常好。

答案 3 :(得分:0)

我不熟悉AnkhSVN,但你所描述的正是svn merge的用途。所以你的问题的答案是否定的。

但是,您可以查看--reintegrate选项,了解这是否会让您的生活更轻松。

请参阅以下博文:

Subversion merge reintegrate
Subversion 1.5 merge-tracking in a nutshell

答案 4 :(得分:0)

如果您正在使用PHPStorm,可以尝试使用GUI界面 https://www.jetbrains.com/help/idea/2016.1/integrating-changes-to-from-feature-branches.html