WedX - журнал о программировании и компьютерных науках

Команда клиента Team Foundation для сброса рабочей области

Существует ли команда (или последовательность команд) для синхронизации рабочей области 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.

Причина, по которой я хочу удалить такие объекты, заключается в том, что этот сценарий будет выполняться на сервере сборки, где я хочу убедиться, что мы собираем именно то, что проверено в системе управления версиями. Хотя теоретически никто не должен создавать новые объекты на сервере сборки, я не люблю полагаться на это предположение/хочу сделать этот скрипт максимально надежным.


Ответы:


1

Я пропустил команду отменить: TF.exe vc undo * /recursive /noprompt.

Запуск этой команды перед запуском get, а затем scorch гарантирует, что моя рабочая область точно соответствует последней версии сервера.

Вот полный код, используемый для синхронизации текущей рабочей области с сервером. NB: эта команда предполагает, что каталог tf.exe включен в переменную среды path (или вы можете заменить tf на "...\path\to\tf.exe"), что текущий/рабочий каталог отображается в системе управления версиями и что ваши учетные данные tf кэшированы (в противном случае включите аргумент /login с логином и паролем). Я не включал /all, '/overwrite' или '/force' в команду get, так как scorch в любом случае покроет это; основная цель get здесь состоит в том, чтобы убедиться, что наше рабочее пространство «указывает» на самое последнее определение.

tf vc undo * /recursive /noprompt
tf vc get * /recursive /noprompt
tf vc scorch * /recursive /noprompt /diff 

NB: приведенный выше vc является излишним/просто гарантирует, что если бы существовала возможность двусмысленности, система знала бы об использовании tfvc версии команду вместо версии git.

29.12.2017
Новые материалы

Объяснение документов 02: BERT
BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

Учебные заметки: создание моего первого пакета Node.js
Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..


Для любых предложений по сайту: [email protected]