TeamFoundation 2008 SDK - 如何以编程方式获取所有变更集的列表?

时间:2010-04-07 17:39:06

标签: tfs sdk

我想要实现的是编写一个任务,列出与构建相关的所有变更集,并从该列表中写入changelog文件。

在使用默认团队构建定义时,我设法使用“informationNodeConverters.GetAssociatedChangesets”方法以编程方式获取与构建关联的变更集列表,但是在我们的teambuild中,我们跳过了CoreLabel目标,因为我们不想每次新的构建发生时都会有一个新的标签。

当我们跳过“CoreLabel”目标时,“CoreGetChangesetsAndUpdateWorkItems”目标不会将任何变更集与构建相关联,因为此目标需要标签才能正常工作,方法“GetAssociatedChangesets”将不返回任何变更集。

我在文档中搜索是否有方法列出版本源中的所有更改集,因此我可以找到包含特定文件夹中项目的所有更改集并使用它来创建我的文件但我找不到任何内容。我知道这是可行的,因为Team Foundation Server Power Tools 2008具有类似的功能,允许您在某些文件夹中查找Changeset。

有人可以帮我找出如何从版本控制中获取所有变更集吗?

提前致谢。

2 个答案:

答案 0 :(得分:3)

我发现“VersionControlServer”类的方法“QueryHistory”可以解决问题。

System.Collections.IEnumerable changesets = vcs.QueryHistory("$/" ,
                VersionSpec.Latest,
                0,
                RecursionType.Full,
                null,
                new ChangesetVersionSpec(1),
                VersionSpec.Latest,
                int.MaxValue,
                true,
                false);

此方法的第一个参数可以是您想要检索更改集的源代码管理中的任何文件夹。

答案 1 :(得分:-1)

我们也可以使用日期和变更集代替标签:

labelled