【问题标题】:Baseless merge for multiple non-consecutive changesets多个非连续变更集的无基础合并
【发布时间】:2012-06-30 02:14:31
【问题描述】:

我正在向 TFS 发出以下命令:

>tf merge /baseless c:\ws\source c:\ws\target /recursive /version:C100~C100

但我有大量需要合并的变更集。是否有为此的快捷方式,或者以某种方式指定列表,例如:

>tf merge /baseless c:\ws\source c:\ws\target /recursive /version:C100,C108,C110,C800,C1001,etc...

【问题讨论】:

    标签: visual-studio-2010 tfs branching-and-merging baseless-merge


    【解决方案1】:

    这是从另一个帖子中获取的,您可能已经看到了,但由于我还没有遇到过,所以我只是想伸出援手。

    你有几个选择:

    • 如果您知道要合并的变更集(或要避免合并的变更集),您可以从要合并的文件中选择结构上的文件夹,然后通过选择所需的特定变更集进行合并。如果您有变更集 2000,2001,2004,2010 并且您想要 2001 和 2010,这有点复杂。每次合并只能合并列表中的连续变更集,因此您必须合并 2001 和 2010。这仍然比合并好如果你有更多的文件,那么还有很多文件,然后是变更集组。
    • 如果您想将该文件夹下的所有内容合并到特定变更集或最近的变更集,您可以在一次批量合并中完成。

    在这两种情况下,您仍然需要解决在源分支和目标分支的同一文件中对同一行进行不同更改的问题。

    操作:Merge multiple files in TFS

    【讨论】:

    • 我已经看到了——我的问题是我有超过 100 个变更集,而且它们大多是不连续的。它们不一定在一个共同的位置。
    • 啊对不起,希望你早日找到答案
    【解决方案2】:

    如果 powershell 是一个选项,下面的脚本应该会有所帮助(未经测试!):

    $cslist = 1,23,45,456,568 #list of all changesets
    foreach ($cs in $cslist) { & 'C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\tf.exe' merge /baseless c:\ws\source c:\ws\target /recursive /version:C$cs }
    

    【讨论】:

      【解决方案3】:

      以下扩展声称可以做到这一点:

      TFS Productivity Tools - Extended Merge 2012

      ExtendedMerge 扩展为多个合并功能提供了解决方法 TFS 未实现:

      1. TFS 合并导致批量签入操作将文件从所有 以前的变更集成为一个大的合并变更集。
      2. TFS 仅允许 合并操作对连续的变更集进行检查。
      3. TFS 不允许通过选择为cherry-peek 合并选择变更集 工作项目。
      4. TFS 合并对话框没有“强制”和“无根据” 选项。

      您可能还想在Visual Studio User Voice 中支持此功能。

      【讨论】:

      猜你喜欢
      • 2016-04-21
      • 2016-03-19
      • 2014-04-18
      • 2011-03-11
      • 2015-07-09
      • 2021-03-27
      • 2021-09-29
      • 1970-01-01
      相关资源
      最近更新 更多