【发布时间】:2017-02-25 09:34:22
【问题描述】:
背景
我们的服务器正在运行 subversion 1.8.10。我们的客户使用 1.8+。我们主要使用 TortoiseSVN(所以我将使用乌龟术语来描述),版本 1.8+。
我们(常见的)颠覆工作流程是:
- 从主干分支/标记(并切换到它)。
- 随着时间的推移定期更新/提交工作。
- 根据需要合并从主干到分支的修订范围 (MRoR)。
- 比较主干和分支之间的 URL,以区分和进行代码审查。
- 合并两个不同的树 (MTDT),从主干到分支,以便合并回主干。
- 分支清理。
- 继续(重复)。
这一切都很好。
问题
我们遇到过一些情况,例如,BranchA 发生了一些变化(例如,添加了一些文件)。它是最新的(来自主干)并在合并回主干之前经过代码审查。 BranchB 已创建(从主干),并希望从 BranchA 中获取更改,以便从中构建。
如果我们从 BranchA 到 BranchB 的 MRoR,我们会得到预期的更改。我们可以根据需要多次合并 BranchA,我们也可以从主干 MRoR 到 BranchA 或 BranchB .. 一切看起来都很好。
BranchA 可以合并回主干(使用 MTDT),工作正常。但是,一旦我们再次 MRoR 主干到 BranchB,在 BranchA 合并后,我们就会遇到树冲突。为什么是这样? SVN 正在跟踪合并历史,它可以看到 BranchA 是谁创建/移动/等文件。如果我执行相同的过程,而是使用 MTDT 从 BranchA 合并到 BranchB,结果是完全相同的。即使 BranchB 没有自己的更改,这种情况仍然会发生。
从 BranchA 合并到 BranchB 的正确方法是什么,这样在 BranchA 合并回主干之后,在下一次从主干到 BranchB 的 MRoR 时不会出现树冲突?
这种事情在 git 中很容易完成。我确信应该有办法解决树冲突。
感谢您的帮助!
【问题讨论】:
标签: svn merge tortoisesvn branch