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
и тебе надо идти.