Способ узнать все затронутые файлы workItem или группу chgsets в 2008 TFS?

Я пытаюсь выяснить способ узнать, какие файлы были затронуты объектом работы в 2008 TFS.

Я понимаю, что это - дублирование вопроса, который кто-то еще уже задает здесь - Представление список всех файлов, измененных как часть Workitem в TFS, но это осталось без ответа, и я был, прочь и на, ища это некоторое время.

Я понимаю, может просмотреть вкладку ссылок объекта работы и затем просмотреть каждый changeset для наблюдения файлов, которые были изменены. Но, объект работы очень вероятно закончится со многими changesets, связанными с ним, и я хотел бы рассмотреть файлы, измененные как часть объекта работы, но я чувствую, что вероятность пропавших без вести файла или два очень высока, если я должен полагаться на рассмотрение каждого из 100 + changesets индивидуально.

Кто-либо знает о способе выполнить это? Заранее спасибо за любую справку или руководство.

6
задан Community 23 May 2017 в 12:09
поделиться

1 ответ

Похоже на работу для Powershell ...

function Get-TfsItem([int] $workItemNumber)
{
    Get-TfsServer njtfs -all |
        foreach { $_.wit.GetWorkItem($workItemNumber) } |
        foreach { $_.Links } |
        foreach { ([regex]'vstfs:///VersionControl/Changeset/(\d+)').matches($_.LinkedArtifactUri) } |
        foreach { $_.groups[1].value } |
        Get-TfsChangeset | 
        Select-TfsItem |
        Sort Path -Unique 
}

первые несколько строк выглядят некрасиво. Мы должны напрямую обратиться к API веб-службы, поскольку командлеты TFS не охватывают систему отслеживания ошибок. А возвращаемые нами объекты требуют некоторой любви к регулярным выражениям, прежде чем они сделают то, что нам нужно. Снова и снова переход к «foreach» - это неудачная идиома Powershell, которая возникает, когда вы связываете недружественный API с неудачным оператором проекции. (Лично я использую свою замену , но вы не можете полагаться на это.)

Последние 3 строки не требуют пояснений, если мои TFS Power Cmdlets установлены и делают свою работу.

3
ответ дан 17 December 2019 в 04:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: