我可以在不执行合并的情况下从中继线更新分支吗?
题
我可能只是没有考虑到这一点,或者我只是没有意识到颠覆中已经存在的选择(我当然不是专家)。
我只是想知道,我是否创建了一个分支来开始从事一些新功能,是否有一种更简单的方法可以使分支保持最新状态 树干最新的修订不必经历合并一系列修订的所有麻烦。我希望能够简单地更新并从行李箱中获取所有修订(和 当然,分支机构),而我的承诺变化只会影响分支。这可能吗?我要问什么有意义吗?
我想这与合并一系列修订并不一定有所不同。只是我使用ANKHSVN,在合并之前,它可以执行所有这些最佳实践检查,有时感觉好像比需要的要复杂得多。这个想法是,我想将我的分支保持在其他任何开发人员可能对中继线制作的提交的最新状态,以便我最终 做 将我的分支合并到后备箱中,一切顺利进行(尽可能)。
解决方案
保持分支机构与最新的中继签到的约会约会,称为合并。
我知道合并有时可能是皇家噩梦,但这正是合并。
其他提示
tl; dr;不,您必须合并,以下是一些说明
它并不像您想象的那样糟糕。我将概述我使用的命令行的步骤。我将使用Vimidiff来管理您可以使用MELD或您喜欢的其他差异工具的冲突。命令先于哈希#'标记
<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。合并命令看起来像Thuse
# svn merge -r335:370 svn://url.to.svn.server/project/trunk
所有其他步骤都是相同的。
我不熟悉Ankhsvn,但是您所描述的是什么 svn merge
是。因此,您的问题的答案是否定的。
但是,您可能会检查一下 --reintegrate
选择这是否使您的生活更轻松。
查看这些博客文章:
如果您使用的是phpstorm,则可以尝试使用GUI接口https://www.jetbrains.com/help/idea/2016.1/integrating-changes-to-from-feature-branches.html