TFS Get Specific Version, Type Label удаляет все файлы, которые не включены в текущую метку

У нас есть ситуация, когда сделать метку из 4 файлов (допустим, что весь проект состоит из 10 файлов, поэтому еще 6 файлов не помещаются в нашу новую метку).

Когда вы выполняете действие Get Specific Version и для Version Type поместите Label и после этого выберите нашу новую метку, все файлы из локальной папки, которые не включены в новую метку (в нашем примере, еще 6 файлов), удаляются!!! Это очень странная ситуация, поэтому не могли бы вы объяснить сценарий, в котором я хочу получить конкретную версию файлов, помеченных новой меткой, но сохранить существующую версию для всех остальных файлов и сохранить их в локальной папке, поэтому я хочу просто обновить файлы которые в моем новом ярлыке и ничего не делают с файлами, которые не в lablel???

Я полагаю, что в TFS есть некоторые настройки, которые, вероятно, могут предотвратить удаление этих файлов!

TnX заранее!

Неманья

1 ответ

Решение

Это работает как задумано. Будьте очень осторожны с метками в TFS, они немного отличаются от меток, которые вы могли бы использовать в других типах контроля версий. В TFS метки очень изменчивы и могут легко перемещаться только в один файл. Они мощные, но опасные.

Как уже упоминалось, вы можете сделать ярлык для отдельных файлов, и все будет в порядке. Однако, когда вы делаете определенный ярлык для папки, вы просите TFS восстановить все в этой папке до той же версии, которая указана на ярлыке. Если файл в этой папке не помечен, он не будет совпадать ни с одной версией метки и будет удален.

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

Рассмотрим три файла в $/Project/Folder... двое помечены LABEL_A и один не помечен вообще. Вы бы сделали что-то вроде этого.

tf label /server:http://tfs:8080 LABEL_B $/Project/Folder /recursive

Это пометит все файлы с помощью LABEL_B. Теперь вам нужно двигаться LABEL_B к правильной версии LABEL_A файлы:

tf label /server:http://tfs:8080 LABEL_B $/Project/Folder /recursive /version:LLABEL_A

Обратите внимание, что есть два L's после /version:... это говорит TFS переместить эту метку из одной версии файла в другую версию.

Как только это будет сделано, получите конкретные на основе LABEL_B и тебе надо идти.

Другие вопросы по тегам