【问题标题】:TFS Branch merge custom changeset issueTFS 分支合并自定义变更集问题
【发布时间】:2019-01-16 04:01:37
【问题描述】:

这很可能是一个众所周知的事实,即当您从一个分支合并/发布变更集时,您并没有发布该变更集中所做的更改,而是发布了该变更集中所有文件中的所有更改。

意思是,如果 file1.cs 被变更集 10 和 11 修改,并且我决定将变更集 11 合并到其他分支,它实际上将包含变更集 10 完成的我的 file1.cs 文件中的更改。

话虽如此,我如何让 TFS 确保不会发生或在发生时警告我?

【问题讨论】:

    标签: tfs


    【解决方案1】:

    这是有道理的,假设合并变更集的工作方式就像您所说的那样,当您合并两个分支时,为了确保所有变更合并,您需要保持合并每个生成的变更集或一次合并多个变更集,您有还要确保您没有丢失任何变更集。现在,您只需合并最新的单个变更集。

    要实现您的需要,唯一的解决方法是手动进行合并。您可以先比较变更集 10 和变更集 11 的差异,然后手动合并差异。这应该可以解决问题。

    【讨论】:

    • 我知道该选项,但希望有更好的东西,因为 TFS 以这种方式先进(我认为是)。您是否知道在与排除的变更集合并时直接知道哪些提交会发生冲突?我的意思是,不查看在选定变更集中修改的所有文件的历史记录?
    【解决方案2】:

    在你的例子中:

    file1.cs 添加了 FunctionA 变更集 10

    file1.cs 添加了 FunctionB 变更集 11

    当与 Changeset 11 从一个分支合并到另一个分支时,通常 TFS 显示存在冲突并给出选项 take --> 目标或源版本。还可以选择使用合并更改工具。我通常使用合并更改工具来决定需要什么。是的,它是手动的。

    【讨论】:

    • 是的,这也是我们一直在做的事情。但问题是,稍后我们将发布其他排除的变更集,这现在搞砸了,我相信你知道为什么。只是希望有更好的方法来处理这个问题。我的同事说 github 的工作方式不同,那里的合并只包括该变更集中的更改,所以希望有类似的东西。
    猜你喜欢
    • 1970-01-01
    • 2010-11-22
    • 2014-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-15
    • 1970-01-01
    • 2014-11-25
    相关资源
    最近更新 更多