【问题标题】:How can I get changeset comments with the merge candidates from a TFS command line command?如何从 TFS 命令行命令获取带有合并候选者的变更集注释?
【发布时间】:2012-08-16 18:29:51
【问题描述】:

我想在两个分支之间生成一个合并候选列表,其中包含我可以复制粘贴到电子邮件中的格式的变更集 cmets。

我知道我可以执行这个 tf 命令:

tf merge /candidate $/Branch1 $/Branch2

返回这样的东西:

Changeset Author                           Date
--------- -------------------------------- ----------
   22282  developer1                       08/09/2012
   22354  developer2                       08/14/2012
   22361  developer2                       08/14/2012
   22365  developer2                       08/14/2012
   22381  developer3                       08/15/2012

但是,我也想获得 cmets。在进行“选定的变更集”合并时,合并向导会执行类似的操作。这是一个例子:

我在想我可以以某种方式将tf merge /candidate 与此命令结合起来:

tf changeset /noprompt 12345

输出如下内容:

Changeset: 12345
User: developer1
Date: Thursday, August 09, 2012 5:20:01 PM

Comment:
  Completed various things

Items:
  merge, edit $/Branch1/BreakFreely.asmx.vb
  merge, edit $/Branch1/FreelyBroken.vb

Work Items:
  ID    Type                State Assigned To  Title
  ----- ------------------- ----- ------------ -----------------------------------------------------------------------------
  21406 Sprint Backlog Task Done  JoDeveloper1 Fix various things

Check-in Notes:
  Code Reviewer:
    Complete Lyblind

简而言之,我想要的结果是这样的:

Changeset Author                           Date       Comment
--------- -------------------------------- ---------- --------------------------
   22282  developer1                       08/09/2012 Fixed random stuff
   22354  developer2                       08/14/2012 Fixed specific stuff

你怎么看?

【问题讨论】:

    标签: tfs


    【解决方案1】:

    如果您愿意使用 TFS-SDK 并编写自己的控制台应用程序,这应该很简单。
    以下内容可以作为一个起点:

    using System;
    using Microsoft.TeamFoundation.Client;
    using Microsoft.TeamFoundation.VersionControl.Client;
    
    namespace MergeCandidates
    {
        class Program
        {
            static void Main()
            {
                TfsTeamProjectCollection teamProjectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://TFSURI"));
    
                var versionControl = teamProjectCollection.GetService<VersionControlServer>();
                var mergeCandidates =
                    versionControl.GetMergeCandidates(@"$/FromPath",
                                                      @"$/ToPath", RecursionType.Full);
                foreach (var mergeCandidate in mergeCandidates)
                {  
                    Console.WriteLine(string.Format("{0} {1} {2} {3}",
                                                    mergeCandidate.Changeset.ChangesetId,
                                                    mergeCandidate.Changeset.Owner, 
                                                    mergeCandidate.Changeset.CreationDate,
                                                    mergeCandidate.Changeset.Comment));
                }
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-05
      • 1970-01-01
      • 2015-05-06
      • 2021-12-21
      • 2011-08-23
      • 1970-01-01
      • 2014-03-09
      • 1970-01-01
      相关资源
      最近更新 更多