【问题标题】:Will TFS 2010 support non-contiguous merging?TFS 2010 是否支持非连续合并?
【发布时间】:2010-03-16 12:03:31
【问题描述】:

我知道一次合并不连续的变更集可能不是一个好主意。但是,至少在一种情况下,合并不连续的变更集(可能)不会破坏任何东西:当受影响的单个文件上没有干预更改时。 (至少,它不会比每次签入的一系列精心挑选的合并更糟糕;至少这样您会在签入之前发现损坏)。

例如,假设您有一个 Main 和一个 Development 分支。它们一开始是相同的(例如在发布之后)。他们有两个文件,foo.cs 和 bar.cs。

Alice 在 Development\foo.cs 中进行了更改,并将其作为更改集 #1001 签入。 Bob 在 Development\bar.cs 中进行了更改,并将其签入为 #1002。 Alice 对 Development\foo.cs 进行了另一项更改,并将其签入为 #1003。

现在我们理论上可以在一次操作中合并从 dev 到 main 的 #1001 和 #1003 更改。如果我们尝试在分支级别合并 dev-to-main,我们将不得不将其作为两个操作来完成。在这个简单、人为的示例中,合并一个文件很简单 - 但在涉及许多文件的现实世界中,它并不那么简单。

非连续合并是 TFS 中未实现“按工作项合并”的原因之一。

【问题讨论】:

    标签: tfs merge


    【解决方案1】:

    TFS 2008 添加了扩展已挂起合并范围的功能。也就是说,你可以这样做:

    tf merge $/dev/foo.cs $/main/foo.cs -version:~1001
    tf merge $/dev/foo.cs $/main/foo.cs -version:~1003
    tf checkin
    

    此外,您始终可以挂起多个不涉及相同文件的合并。

    tf merge $/dev/foo.cs $/main/foo.cs
    tf merge $/dev/bar.cs $/main/bar.cs
    tf checkin
    

    但除此之外——不,2010 在这方面没有添加任何新功能。如果有任何中间冲突,我的第一个命令序列仍然会被阻止。

    【讨论】:

    • 我写了一个 TFS API 程序来做这件事 - 但它......很难做对。我希望官方的微软人员会为我做这件事。 :) 感谢您的评论
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-29
    • 2016-04-21
    • 2012-01-23
    • 1970-01-01
    • 1970-01-01
    • 2011-04-03
    相关资源
    最近更新 更多