列出所有变更集和相关工作项属于指定日期之间的特定项目

时间:2011-12-08 11:17:07

标签: tfs2010 changeset tfs-sdk

我正在尝试用C#编写一个小的Relase Notes程序。我需要在指定日期之间获取所有变更集和相关工作项属于指定项目。

我尝试使用QueryHistory方法,但我找不到如何给出日期过滤器。

2 个答案:

答案 0 :(得分:9)

您可以设置

VersionSpec versionFrom = GetDateVSpec(date);
VersionSpec versionTo = GetDateVSpec(DateTime.Now);

然后用

IEnumerable results = versionServer.QueryHistory(sourceControlPath, VersionSpec.Latest, 0, RecursionType.Full, null, versionFrom, versionTo, int.MaxValue, true, true);
List<Changeset> changesets = results.Cast<Changeset>().ToList();

你得到了你想要的变化集。

GetDateVSpec如下:

private static VersionSpec GetDateVSpec(DateTime date)
{
   string dateSpec = string.Format("D{0:yyy}-{0:MM}-{0:dd}T{0:HH}:{0:mm}", date);
   return VersionSpec.ParseSingleSpec(dateSpec, "");
}

我在我自己的一个工具中使用它,最初我找到了这个here的核心(Robaticus的一篇伟大的帖子)

答案 1 :(得分:3)

刚刚发现有几个类继承自VersionSpec并且将为您完成工作并且非常易于使用。例如,有一个 DateVersionSpec ,它接受DateTime。特定VersionSpec类的完整列表是:

WorkspaceVersionSpec LatestVersionSpec LabelVersionSpec DateVersionSpec ChangesetVersionSpec

希望这有帮助。

相关问题