我正在与同一中央存储库中的另一个团队合作。
他们有一个分支(我们称之为theirBranch),我不允许编辑(可以查看、结帐,只是不能更改)。
我有自己的分支(myBranch),它最初是作为 theirBranch 的副本。在检查并处理它之后,“工作副本”,当我对它进行重大更改时,我将它提交回 myBranch。
目标:合并从 theirBranch 到 myBranch 的任何更改。
第一次尝试 - 是“合并两棵不同的树”。
“这种方法涵盖了当你想将两个不同分支的差异合并到你的工作副本中的情况。”
结果 - 代码中的任何差异都被标记为冲突,即使在 myBranch 最初创建后我只更改了代码。此外,一些额外的复杂性,我有一些树冲突,因为我从 myBranch 中删除了一些仍然存在于 theirBranch 中的文件。这棵树的冲突对我来说很重要。
问题1:是否所有树冲突都需要手动合并/解决?
第二次尝试 - 使用“开关”将他们的分支与 myBranch 合并。切换回我的分支并提交。
据我了解,在 (2) 个不同分支上的同一存储库中工作时,您可以切换工作副本链接到的存储库分支。完成此操作后,您的工作副本和新分支之间的任何差异都将使用“更新”“合并”。
来自 TortoiseSVN 人:
转变 -
正如“Update-to-revision”更改工作副本的时间窗口以查看历史中的不同点一样,“Switch”更改工作副本的空间窗口,使其指向存储库的不同部分。在只有少数文件不同的主干和分支上工作时,它特别有用。您可以在两者之间切换工作副本,并且只会传输更改的文件。
更新 -
此 Subversion 命令将存储库中的最新更改拉入您的工作副本,将其他人所做的任何更改与工作副本中的本地更改合并。
结果 - 任何不同的文件在我的工作副本中都被文件的“theirBranch”版本替换。
问题 2 - 为什么文件被替换而不是合并?
问题 3 - 为什么将只存在于 theirBranch 中的 theirBranch 文件放在 myBranch 中而没有树冲突?
请随时回答您知道答案的任何问题或关于实现我的目标的任何建议。谢谢你。