Существует ли команда (или последовательность команд) для синхронизации рабочей области TFVC с сервером, гарантирующая, что данные на диске в точности совпадают с данными, зарегистрированными на сервере.
tf vc scorch
почти делает то, что нужно, в том смысле, что он синхронизирует рабочую область клиента с версией этой рабочей области на сервере, но если новый элемент был создан на клиенте и добавлен в систему управления версиями, хотя еще не зарегистрирован, этот элемент остается после запуска scorch . NB: я использую версию scorch для TF Client, а не версию с электроинструментами, так как я работаю с VS2017 (scorch
поддерживается из VS2013 SP1), если это имеет значение.
Связано, я знаю, что электроинструменты включают команду treeclean
; однако это влияет только на элементы, не находящиеся под контролем источника; не те, которые добавлены в систему управления версиями, но не зарегистрированы. https://adamprescott.net/2011/09/12/clean-tfs-workspaces-with-scorch-treeclean/.
Единственный способ, который я могу придумать, - это удалить (tf vc workspace /delete /collection:"https://$MyInstance.visualstudio.com/DefaultCollection" $MyWorkspace
) и воссоздать (tf workspace /new $MyWorkspace /collection:"https://$MyInstance.visualstudio.com/DefaultCollection"
) рабочую область перед запуском рекурсивного получения для повторного заполнения новой папки. Тем не менее, это похоже на долгий путь для чего-то, что, как я полагаю, будет простым...
Мы используем TFVC
, а не Git
, потому что работаем с Dynamics AX
, который изначально не поддерживает Git
.
Причина, по которой я хочу удалить такие объекты, заключается в том, что этот сценарий будет выполняться на сервере сборки, где я хочу убедиться, что мы собираем именно то, что проверено в системе управления версиями. Хотя теоретически никто не должен создавать новые объекты на сервере сборки, я не люблю полагаться на это предположение/хочу сделать этот скрипт максимально надежным.