In TFS 2010 I have work items with linked changesets. I can generate a query that reports the work items I'm looking for. Now I want to do a query of Work Items and Direct Links that includes all the changesets linked to these work items. In the query editor I can't find any means to specify a changeset as the linked-to item. Are work-items the only output possible from a query?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
An option is to use the TFS API like the following snippet.
var projectCollection = new TfsTeamProjectCollection(
new Uri("http://localhost:8080/tfs"),
new UICredentialsProvider());
projectCollection.EnsureAuthenticated();
var workItemStore = projectCollection.GetService<WorkItemStore>();
var versionControlServer = projectCollection.GetService<VersionControlServer>();
var artifactProvider = versionControlServer.ArtifactProvider;
var project = workItemStore.Projects["Test01.MSFAgile.v5"];
var teamQueryFolder = project.QueryHierarchy["Team Queries"] as QueryFolder;
var query = teamQueryFolder["My Tasks"];
var queryDefinition = workItemStore.GetQueryDefinition(query.Id);
var variables = new Dictionary<string, string>
{
{"project", query.Project.Name}
};
var workItemCollection = workItemStore.Query(
queryDefinition.QueryText,
variables);
foreach (WorkItem workItem in workItemCollection)
{
Console.WriteLine("WI: {0}, Title: {1}", workItem.Id, workItem.Title);
foreach (var changeset in
workItem.Links
.OfType<ExternalLink>()
.Select(link => artifactProvider
.GetChangeset(new Uri(link.LinkedArtifactUri))))
{
Console.WriteLine(
"CS: {0}, Comment: {1}",
changeset.ChangesetId,
changeset.Comment);
}
}
回答2:
I just attended the Webinar Improving Developer and Tester Collaboration where I posed my question. Instructor Ken Arneson of alpi.com confirmed that links to changesets are not reportable through Query Editor in TFS Team Explorer. To access links to changesets, other tools must be used to access the "Cube". I have more to learn.
回答3:
If you do a Query and include external link count >0 this will actually give you all work items that have changesets associated with it.