Получить текущий идентификатор набора изменений в рабочей области для TFS
Как мне выяснить, какой набор изменений у меня в настоящее время есть в моей локальной рабочей области?
конечно, я могу выбрать один файл и просмотреть его историю. Однако если этот файл не был недавно обновлен, его набор изменений, вероятно, старше, чем недавно обновленные файлы в том же решении.
одна из возможных ошибок, которые мы можем сделать, заключается в том, что мы просматриваем историю в файле решения, однако файл решения редко изменяется, если вы не добавляете новый проект / Создание уровня решения изменения.
в конце концов, чтобы выяснить набор изменений, мне нужно вспомнить, какие были последние измененные файлы и просмотреть их историю.
есть ли лучший способ сделать это?
3 ответов:
ваш ответ находится в блоге MSDN от Buck Hodges:Как определить последний набор изменений в рабочей области
из корня (сверху) рабочей области, в cmd выполните:
tf history . /r /noprompt /stopafter:1 /version:W
общий ответ, чтобы использовать
tf.exe history . /rнепосредственно работает, но это может быть ужасно медленно. В нашем случае это занимает 10-15 секунд. Теперь я использую двухэтапную проверку, сначала проверяя ревизию некоторых произвольных файлов (я использую файлы в корневой папке).С помощью powershell:
$tfexepath = "C:\Program Files (x86)\Microsoft Visual Studio17\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\tf.exe" $localpath = "C:\some\tfs\directory" $result = & $tfexepath history $localpath /noprompt /stopafter:1 /version:W "$result" -match "\d+" | out-null $id = $matches[0]затем выполните поиск из корня, используя флаг /r, но ограничить поиск чтобы начать с ревизии, найденной выше:
$result2 = & $tfexepath history $localpath /r /noprompt /stopafter:1 /version:$id~W "$result2" -match "\d+" | out-null $id2 = $matches[0] #result: Write-Host $id2для нашей базы кода, это приносит вниз общее время от 10-15 до 1,4-1,5 сек.
насколько я понимаю, нет никаких недостатков или ограничений, но я предполагаю, что это может быть медленнее в крохотное хранилище. - Я был бы рад узнать.
Если вы хотите использовать PowerShell (см. также; эквивалентно ответу @kroonwijk):
включить TFS snapin (один раз, если уже нет)
add-pssnapin Microsoft.TeamFoundation.PowerShellиспользуйте командлет tfs для получения текущего идентификатора набора изменений
Get-TfsItemHistory <PATH_TO_PROJECT> -Recurse -Stopafter 1 -Version W
Comments