Существует ли команда (или последовательность команд) для синхронизации рабочей области 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.
Причина, по которой я хочу удалить такие объекты, заключается в том, что этот сценарий будет выполняться на сервере сборки, где я хочу убедиться, что мы собираем именно то, что проверено в системе управления версиями. Хотя теоретически никто не должен создавать новые объекты на сервере сборки, я не люблю полагаться на это предположение/хочу сделать этот скрипт максимально надежным.