为啥将树合并到“两棵树同步的最后修订号”?
Posted
技术标签:
【中文标题】为啥将树合并到“两棵树同步的最后修订号”?【英文标题】:Why merge trees to "last revision number at which the two trees were synchronized"?为什么将树合并到“两棵树同步的最后修订号”? 【发布时间】:2018-03-29 03:37:37 【问题描述】:在 TortoiseSVN documentation about merging 中,“合并两棵不同的树”的说明如下(强调我的):
在 From Revision 字段和 To Revision 字段中,输入两棵树同步的最后一个修订号。
这是正确的吗?这对我来说毫无意义。以这个说明性示例为例,我们希望将修订版 105 的“分支”合并回“主干”:
如果在分支后没有向主干提交任何内容(即如果版本 101 不存在),我们将从主干 HEAD(即版本 100)合并到分支 HEAD(版本 105)。说得通。
但是 101 确实存在。文档说我们必须在两棵树同步的最后一个修订号(即修订版 100,这很有意义)从主干合并到分支......两棵树同步的最后一个修订号......这是什么?
102? (不,它与中继不同步) 100? (不,它甚至不在分支上) 不应该是105吗?这似乎是唯一有意义的,但对我来说这与文档相矛盾。我在这里缺少什么?文档是否正确?误导?错了吗?
【问题讨论】:
如果分支未与主干“修订版 101”同步,则在将整个分支合并到主干时可能会发生冲突或丢失 您能否提出一个合理的论点来删除parallelism-amdahl 上的扩展文本,该论点排除了原始步骤的额外细节,基于 Gene M. AMDAHL 对改进流程调度的观察? >>> ***.com/posts/18374630/revisions 删除事实是否曾经改善过严格的知识构建? @user3666197 嗯,我相信你在评论错误的元帖子......你的公主在another castle。 【参考方案1】:我不建议使用 svn 进行 git 风格的分支,在我看来你正在尝试这样做,如果你有充分的理由就使用分支(比如有一个生产和开发分支或一些需要很长时间的功能时间来发展,并阻止其他人做他们的工作)。
仅仅是因为 svn 复制粘贴整个文件夹,而不是像 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 命令行功能。
【讨论】:
【参考方案2】:我不明白你为什么要合并不同的树选项。根据图片,您应该使用自动重新整合合并。见TortoiseSVN Manual | Merging a Range of Revisions。
在 HEAD 使用您的主干的工作副本并选择选项合并一系列修订,然后单击 Next-Next-Merge。从分支到主干的合并应该会自动完成。
【讨论】:
以上是关于为啥将树合并到“两棵树同步的最后修订号”?的主要内容,如果未能解决你的问题,请参考以下文章
为啥在没有明确合并的情况下,更改可能会从一个 NSManagedObjectContext 填充到另一个?