填充TFS工作项修订集合

填充TFS工作项修订集合,tfs,Tfs,我正在编写一个工具,需要访问TFS工作项模板的所有修订 Workitem有一个Revisons集合和返回修订数的Rev属性 当我尝试在集合中执行foreach时,即使测试工作项中包含6个“条目”,集合也是空的 为了解决这个问题,我使用GetWorkItem(WorkItemID,RevisionID),在for循环中增加修订ID以获得修订。这似乎很疯狂,因为我必须这样做,而那里的收藏却不包含它应该包含的内容 我是否遗漏了一些东西,或者这只是TFS客户端API中的一个bug 根据您检索工作项的方式

我正在编写一个工具,需要访问TFS工作项模板的所有修订

Workitem有一个Revisons集合和返回修订数的Rev属性

当我尝试在集合中执行foreach时,即使测试工作项中包含6个“条目”,集合也是空的

为了解决这个问题,我使用GetWorkItem(WorkItemID,RevisionID),在for循环中增加修订ID以获得修订。这似乎很疯狂,因为我必须这样做,而那里的收藏却不包含它应该包含的内容


我是否遗漏了一些东西,或者这只是TFS客户端API中的一个bug

根据您检索工作项的方式,它可能仅部分加载。在访问修订集之前,请尝试调用工作项上的Open方法。

这取决于检索工作项的方式,它可能仅部分加载。在访问修订集之前,请尝试调用工作项上的Open方法。

经过大量挖掘后,我现在很清楚,如果要获取工作项的所有修订,必须显式加载所需的修订(2),这使得修订集非常无用。

经过大量挖掘后,现在我很清楚,如果要获取工作项的所有修订,必须显式加载所需的修订(2),这使得修订集合几乎毫无用处。

我正在使用Microsoft.TeamFoundation.Controls.PickWorkItemsControl来选择所需的工作项。在这之后,RevisionCollectoin就完成了。也许这有助于:

// select the workitems using the picker
ArrayList workItems = _workItemPicker.Control.SelectedWorkItems();

// after that use a foreach and output all history included in each revision
private void PrintHistory(WorkItem workitem)
{

        RevisionCollection revisions = workitem.Revisions;

        foreach (Revision revision in revisions)
        {
            String history = (String) revision.Fields["History"].Value;
            Console.WriteLine("**** Revision {0}", revision.Fields["Title"], revision.Fields["Changed Date"]);

            foreach (Field field in revision.Fields)
            {
                Console.WriteLine("* field {0}:{1} ", field.Name, field.Value);
            }

            Console.WriteLine("****");
            Console.WriteLine();
        }

} 

我正在使用Microsoft.TeamFoundation.Controls.PickWorkItemsControl选择所需的工作项。在这之后,RevisionCollectoin就完成了。也许这有助于:

// select the workitems using the picker
ArrayList workItems = _workItemPicker.Control.SelectedWorkItems();

// after that use a foreach and output all history included in each revision
private void PrintHistory(WorkItem workitem)
{

        RevisionCollection revisions = workitem.Revisions;

        foreach (Revision revision in revisions)
        {
            String history = (String) revision.Fields["History"].Value;
            Console.WriteLine("**** Revision {0}", revision.Fields["Title"], revision.Fields["Changed Date"]);

            foreach (Field field in revision.Fields)
            {
                Console.WriteLine("* field {0}:{1} ", field.Name, field.Value);
            }

            Console.WriteLine("****");
            Console.WriteLine();
        }

} 

你在哪里找到工作?我知道,当我使用sourceControl.QueryHistory获取文件的版本历史记录时,我必须将我的一个参数(bool include Changes)设置为true才能获取更改集中的更改。

您从哪里获取工作项?我知道,当我使用sourceControl.QueryHistory获取文件的版本历史记录时,我必须将我的一个参数(bool include Changes)设置为true才能获取更改集中的更改。

调用open不会填充集合。调用open不会填充集合。