为什么要将树合并到"两个树同步的最后修订号#34;?

时间:2017-10-17 12:34:15

标签: svn merge version-control tortoisesvn

在TortoiseSVN documentation about merging中,指导"合并两棵不同的树"声明如下(强调我的):

  

在From Revision字段和 To Revision 字段中,输入同步两棵树的最新修订号

这是对的吗?这对我来说毫无意义。举一个这个说明性的例子,我们希望合并" branch"在修订版105回到" trunk":

enter image description here

如果在分支之后没有任何东西被提交到主干(即,如果修订版101不存在),我们将从主干HEAD(将是修订版100)合并到分支HEAD(修订版105)。说得通。

但101确实存在。文档说我们必须从两个树同步的最后修订号(即修订版100,这完全有意义)的主干合并到...分支...两个树同步的最后修订号...这是什么?

  • 102? (不,它与主干不同步)
  • 100? (不,它甚至不在分支上)
  • 难道真的不是105吗?这似乎是唯一有意义的,但对我而言,这与文档相矛盾。

我在这里缺少什么?文件是对的吗?误导?错?

2 个答案:

答案 0 :(得分:0)

我不明白你为什么要合并不同的树选项。根据图片,您应该使用自动重新整合合并。请参阅TortoiseSVN Manual | Merging a Range of Revisions

在HEAD中使用主干的工作副本,然后选择合并一系列修订选项,然后单击下一步 - 下一步 - 合并。从分支到主干的合并应自动完成。

答案 1 :(得分:0)

我不建议使用svn进行git-style分支,在我看来你正试图这样做,如果你有充分的理由就使用分支(比如有一个生产和开发分支或一些需要很长时间的功能)发展的时间,并阻止他人做他们的工作)。

仅仅因为svn copy-paste整个文件夹,而不仅仅是像git那样保留更改。例如。

我已经烧掉了4个ssd驱动器,每天在我的项目上合并......

您不必依赖Tortoise SVN及其文档,Tortoise SVN只是svn的GUI。

所以基本上在SVN中,分支/标签之间没有区别,它总是表现出相同的方式,所以恕我直言,Tortoise SVN文档会产生误导,如果你将分支合并到主干中,则没有区别,或者反之亦然。

它还取决于您拥有的SVN的基础版本,最好是拥有依赖于svn 1.7或更高版本的版本。

因此,如果您想“重新集成分支”,只需从命令行导航到您的主干,或者调用任何目录并输入

 svn merge ^/branch/branch_name

之后删除分支...

Tortoise SVN还允许你在控制台中使用svn,只需重新启动它的安装,并启用svn命令行功能。