我正在尝试使用C#和TFS从TFS中的变更集注释中获取发布日志。
我有这段代码:
const string tfsURL = "http://dev.ger.test.com:8080/tfs";
var tpc = new TfsTeamProjectCollection(new Uri(tfsURL));
VersionControlServer vcs = (VersionControlServer)tpc.GetService(typeof(VersionControlServer));
var tp = vcs.GetTeamProject(@"MyCollection");
var path = tp.ServerItem;
path += @"/Project/Subproject";
var q = vcs.QueryHistory(path, VersionSpec.Latest, 0, RecursionType.Full, null, null, null, 1, true, true, false, false);
foreach (var item in q)
{
Console.WriteLine(item);
Logger(item.ToString(), false);
}
有效,但它只返回最新的变更集以及此变更集内的所有信息。
所以我的问题是:
如何在查询历史中指定一个变更集范围,例如VersionSpec.1000到VersionSpec.Latest?
如何操作foreach循环中的项目以显示item.Comment?
等指定信息非常感谢任何帮助!
编辑:我将QueryHistory编辑为
var q = vcs.QueryHistory(path, VersionSpec.Latest, 0, RecursionType.Full, null, new ChangesetVersionSpec(23618), VersionSpec.Latest, 1, true, true, false, false);
不幸的是没有改变。
答案 0 :(得分:6)
它应该是这样的:
var changes = vcs.QueryHistory(
path,
VersionSpec.Latest,
0,
RecursionType.Full,
null,
VersionSpec.ParseSingleSpec("C100", null), // starting from changeset 100
VersionSpec.ParseSingleSpec("C200", null), // ending with changeset 200
int.MaxValue,
true,
false);
foreach(Changeset change in changes)
{
Console.WriteLine("{0} {1}", change.ChangesetId, change.Comment);
}
它会将变更集100到200并列出其ID和注释