2016-10-07 2 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, который также будет возвращать все изменения для этого WorkItem. Подробные способы, пожалуйста, обратитесь к ответу Ягберга в этом вопросе: get all changed files for a TFS workitem

Смежные вопросы