2016-10-07 3 views
1

[ワークアイテム] - > [すべての作業アイテム] - > [クエリの編集]をクリックし、特定の問題を探すと、その問題を開いてそのすべてのリンク問題。そして私が各チェンジセットを見ると、どのファイルが変更されたかが分かります。問題のすべての変更を取得する#

しかし、問題のチェンジセットがたくさんある場合、これは混乱する可能性があります。私が本当に望むのは、問題のもとで変更されたすべてのファイルの統合リストです。問題の下で最新のバージョンと問題前のファイルのバージョンとの差分を実行できます。

これは可能ですか?

答えて

1

これは、作業項目のクエリまたはtfコマンドによって単純に達成することはできません。 TFS APIを使用する必要があるかもしれません。

詳細な手順は、TFSサーバーの作業項目を取得することです。次に、この作業項目に変更されて関連付けられたすべてのファイル/項目を、リンク集(作業項目のリンク)、それらのチェンジセット内のすべてのファイルをリストします。

/// <summary> 
/// Get all of the Files/Items that were modified and associated with a Work Item 
/// </summary> 
/// <param name="teamProject">Name of the Team Project</param> 
/// <param name="workItemID">The work item ID</param> 
/// <returns>List of changes</returns> 
public List<FileItem> GetAllFilesModifiedForWorkItem(string teamProject, int workItemID) 
{ 
    WorkItemCollection workItems = GetWorkItems(teamProject, workItemID); 

    if (workItems.Count == 0) 
    { 
    Console.WriteLine("No Items found for Work Item ID: " + workItemID); 

    return null; 
    } 

    WorkItem item = workItems[0]; 

    Console.WriteLine("Work Item {0} has {1} Links", workItemID, item.Links.Count); 

    if(item.Links.Count == 0) 
    return null; 

    List<Changeset> lstChangesets = GetChangesets(item.Links); 

    Console.WriteLine("Work Item {0} has {1} Changesets", workItemID, lstChangesets.Count); 

    if (lstChangesets.Count == 0) 
    return null; 

    List<FileItem> lstItems = GetItemsForChangeset(lstChangesets); 

    Console.WriteLine("Work Item {0} has {1} Items (changes)", workItemID, lstItems.Count); 

    if (lstItems.Count == 0) 
    return null; 

    return lstItems; 
} 

このブログ参照してくださいコード全体と詳細情報:またHow to get all files modified for a work item in TFS

を、あなたもまた、その作業項目のためのすべての変更を返しますTFS Sidekicksを使用しようとすることができます。詳細な方法は、この質問のjagbergの答えを参照してください:get all changed files for a TFS workitem

関連する問題