3

我们希望生成具有以下格式的构建注释:

1) Associated ChangeSets:
2)   - ChangeSet 45241, by Joe: "Patching fix for foobar"
3)     'Foo.cs' integrated from dev v. 22 to qa v. 7
4)     'Bar.cs' integrated from dev v. 9 to qa v. 3

到目前为止,我们有一个完成 1) 和 2) 的自定义构建步骤。它查看由“AssociatedChangesetsAndWorkItems”TFS 构建活动生成的信息。这是代码:

protected override bool Execute(CodeActivityContext context)
{
     StreamWriter sw = new StreamWriter(Path.Combine(BuildNotesPath.Get(context),"build-notes.txt"));
     sw.WriteLine("Associated ChangSets:");
     foreach (Changeset changeset in BuildAssociatedChangesets.Get(context))
     {
        sw.WriteLine(string.Format("ChangeSet {0}, by {1}: {2}", changeset.ChangesetId, changeset.Committer, changeset.Comment));            
        foreach (Change change in changeset.Changes)
        {               
           foreach (MergeSource source in change.MergeSources)
              sw.WriteLine(string.Format("\'t{0}': integrated from dev v. {1} to qa v. {2}", source.ServerItem, source.VersionFrom, source.VersionTo));
        }
     }
     sw.Flush();
     sw.Dispose();
     return true;  
}

我们遇到的问题是“MergeSources”字段始终是一个空列表。我们必须做些什么来填充该字段?

4

1 回答 1

1

查看MergeWorkItemsEventHandler.MergeWorkItems.GetMergeHistory以及TFS 2010 合并工作项事件处理程序中的Extensions.PendingMerges方法,以获取获取合并源的示例。

Jakob Enh的回答值得称赞。:)

于 2011-06-30T19:04:14.043 回答