Способ выяснить все затронутые файлы workItem или группы chgsets в TFS 2008? - PullRequest
6 голосов
/ 26 февраля 2010

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

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

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

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

Ответы [ 3 ]

3 голосов
/ 26 февраля 2010

Звучит как работа для 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 установлены и выполняют свою работу.

1 голос
/ 27 декабря 2011

Мне нужно было то же самое, и я написал утилиту TFS для себя, используя TFS API. Он позволяет вам видеть все изменения, которые выполняются с течением времени в рабочем элементе, и некоторые другие. Я положил это в кодекплекс. Вы можете получить его от:
tfshelper.codeplex.com

1 голос
/ 01 декабря 2011

Я только что нашел плагин Scrum Power Tools для VS 2010, который делает это с помощью нажатия кнопки в VSS, установлен, и он работает. http://visualstudiogallery.msdn.microsoft.com/3f261226-530e-4e9c-b7d7-451c2f77f262

Я просто пытаюсь заставить работать версию PowerShell 2010. http://msdn.microsoft.com/en-us/vstudio/bb980963

Первая проблема заключается в том, что опция оболочки оболочки по умолчанию не установлена, используйте выборочную установку и выберите эту опцию. После завершения в меню TFS powertools 2010 появляется приглашение powershell, команды работают только там.

На сервере get мне пришлось заменить njtfs на URL http://tfsserver:8080/tfs и удалить -all. Сценарий по-прежнему не работает.

В конечном итоге мне нужен подробный отчет, в котором перечислены: исходный «рабочий элемент» «набор изменений»

Например:
xyz.cs 'рабочий элемент 1' 'C397'
xyz.cs 'рабочий элемент 2' 'C399'

В конце концов мне нужно выяснить, что рабочий элемент 1 зависит от рабочего элемента 2. Я также должен вернуться к рабочему элементу 1 для проверки состояния.

Может кто-нибудь помочь с сценарием версии 2010? Я никогда раньше не писал PS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...