【发布时间】:2019-01-16 04:01:37
【问题描述】:
这很可能是一个众所周知的事实,即当您从一个分支合并/发布变更集时,您并没有发布该变更集中所做的更改,而是发布了该变更集中所有文件中的所有更改。
意思是,如果 file1.cs 被变更集 10 和 11 修改,并且我决定将变更集 11 合并到其他分支,它实际上将包含变更集 10 完成的我的 file1.cs 文件中的更改。
话虽如此,我如何让 TFS 确保不会发生或在发生时警告我?
【问题讨论】:
标签: tfs
这很可能是一个众所周知的事实,即当您从一个分支合并/发布变更集时,您并没有发布该变更集中所做的更改,而是发布了该变更集中所有文件中的所有更改。
意思是,如果 file1.cs 被变更集 10 和 11 修改,并且我决定将变更集 11 合并到其他分支,它实际上将包含变更集 10 完成的我的 file1.cs 文件中的更改。
话虽如此,我如何让 TFS 确保不会发生或在发生时警告我?
【问题讨论】:
标签: tfs
这是有道理的,假设合并变更集的工作方式就像您所说的那样,当您合并两个分支时,为了确保所有变更合并,您需要保持合并每个生成的变更集或一次合并多个变更集,您有还要确保您没有丢失任何变更集。现在,您只需合并最新的单个变更集。
要实现您的需要,唯一的解决方法是手动进行合并。您可以先比较变更集 10 和变更集 11 的差异,然后手动合并差异。这应该可以解决问题。
【讨论】:
在你的例子中:
file1.cs 添加了 FunctionA 变更集 10
file1.cs 添加了 FunctionB 变更集 11
当与 Changeset 11 从一个分支合并到另一个分支时,通常 TFS 显示存在冲突并给出选项 take --> 目标或源版本。还可以选择使用合并更改工具。我通常使用合并更改工具来决定需要什么。是的,它是手动的。
【讨论】: