Поделиться через


Команда Shelve (Team Foundation Version Control)

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Команда Team Foundation Version Control (TFVC) shelve сохраняет набор ожидающих изменений, а также заметки о ожидании регистрации, комментарий и список связанных рабочих элементов на сервере Azure DevOps без фактической их проверки.

Необходимые условия

Если вы хотите использовать команду shelve для удаления набора полок, будьте владельцем набора полок или администрирование изменений необходимо задать для параметра Allow. Дополнительные сведения см. в разделе разрешения TFVC по умолчанию.

Синтаксис

tf shelve  [/replace] [/comment:("comment"|@commentfile)] [shelvesetname] [/validate][/noprompt] [/login:username,[password]]
tf shelve [/move] [/replace] [/comment:("comment"|@commentfile)] 
[/recursive] [shelvesetname] itemspec [/validate] [/noprompt] [/login:username,[password]]
tf shelve /delete shelvesetname[;owner] [/login:username,[password]] [/collection:TeamProjectCollectionUrl]

Параметры

Аргументы

аргумент описание
<commentfile> Указывает путь к файловой системе файла, из которого следует читать примечания для набора полок.
<comment> Указывает комментарий для набора полок.
<itemspec> Определяет файлы или папки для отложения. По умолчанию все ожидающие изменения в текущей рабочей области будут отложены, если этот параметр не указан. Дополнительные сведения о том, как Team Foundation анализирует itemspec, чтобы определить, какие элементы находятся в области, см. в разделе Использование параметров для измененияфункций команд.
<shelvesetname> Указывает имя, с помощью которого набор полок можно получить с сервера Azure DevOps. Можно указать существующее сочетание shelvesetname и owner, но только если /replace также указан.

Необходимо указать значение для этого параметра.
<owner> Определяет текущего или предполагаемого владельца набора по имени пользователя. По умолчанию текущий пользователь назначает владение набором полок, если он не указан.
<username> Предоставляет значение для параметра /login. Можно указать значение имени пользователя как DOMAIN\username или username.
<TeamProjectCollectionUrl> URL-адрес коллекции проектов, содержащей файлы или папки, которые требуется отложить, например http://myserver:8080/tfs/DefaultCollection/.

Параметры

параметра описание
/new Выбранное состояние каждого ожидающего изменения, как показано в диалоговом окне регистрации Visual Studio, комментарий, связанные рабочие элементы, заметки о проверке и переопределение политики регистрации, хранятся на компьютере разработки как ожидающие изменения, пока вы не запустите их. Параметр /new очищает эти метаданные проверки перед возвратом.
/move Удаляет ожидающие изменения из рабочей области после успешной операции отработки.
/replace Заменяет существующий набор полок тем же именем и владельцем, что и указанный вами.
/delete Удаляет указанный набор полок. Этот параметр может сочетаться только с параметром /server. Если параметр /noprompt не включен, появится сообщение подтверждения при указании параметра /delete.
/comment Добавляет указанный комментарий, описывающий отложенные изменения.
/recursive Поставьте все элементы в указанной папке набора полков, ее вложенные папки и все элементы, которые есть, если указанная itemspec является папкой.
/noprompt Подавляет любые запросы на входные данные.
/validate Этот параметр выбирает политики оценки и примечания перед отображением в диалоговом окне Shelve — исходные файлы при открытии. Если установлен флажок проверки, диалоговое окно оценивает политики регистрации и проверяет, что требуется, чтобы заметки о регистрации были заполнены. Этот параметр полезен, если изменения передаются для проверки и регистрации другим пользователем. Недопустимо, если в сочетании с /noprompt.
/login Указывает имя пользователя и пароль для проверки подлинности пользователя с помощью Azure DevOps Server.
/collection Указывает коллекцию проектов.

Замечания

Команда shelve служебной программы командной строки tf создает резервные копии ожидающих изменений, список связанных рабочих элементов, заметки о ходе выполнения и примечания в наборе полок на сервере Azure DevOps. Набор полок очень похож на набор изменений, который не фиксируется на сервере. Как и набор изменений, набор полок можно получить с сервера в локальную рабочую область любым пользователем, имеющим достаточные разрешения.

Шелвинг является альтернативой проверке ожидающих изменений, которые не были проверены достаточно. Используйте отложку, когда вы хотите прервать работу:

  • Совместное использование набора локальных рабочих файлов с другим разработчиком или тестировщиком без проверки изменений на сервере управления версиями.

  • Отложите группу ожидающих изменений временно без их проверки, чтобы вместо этого можно было работать над более высоким приоритетом. После завершения работы над задачей с высоким приоритетом можно восстановить отложенные изменения с помощью команды Unshelve.

Если включить параметр /move, команда shelve откатывает каждую отложенную версию файла в базовую версию рабочей области, которая является последней версией, полученной с сервера в текущую рабочую область. В частности, для всех элементов, которые вы отложите, параметр /move:

  • Использует Undo для отмены изменений, которые были отложены. Файлы, ожидающие добавления, удаляются из рабочей области.

  • Извлекает базовые версии рабочей области всех файлов, для которых ожидающие выпуски существуют с сервера в текущую рабочую область.

  • Помечает все элементы в текущей рабочей области только для чтения.

Если включить параметр /delete, TFVC окончательно удаляет указанный набор полков с сервера Azure DevOps.

Дополнительные сведения об использовании служебной программы командной строки tf см. в разделе Использование команд управления версиями Team Foundation.

Примеры

В следующем примере создается новый набор полок на сервере Azure DevOps с именем Reflector_BuddyTest, назначается права владения пользователю Pat, возвращается все элементы в текущей рабочей области в последнюю версию, скачаемую во время последней операции get, и задает состояние только для чтения:

c:\projects> tf shelve Reflector_BuddyTest;Pat /move

В следующем примере удаляется существующий набор полков new-feature с сервера, создается новый набор по имени и сохраняется все ожидающие изменения в текущей рабочей области:

c:\projects> tf shelve new-feature /replace

В следующем примере создается набор полок с именем HelloWorld_TestMe, который включает все ожидающие изменения во всех .cs файлах в C:\projects рабочей папке и ее вложенных папках:

c:\projects> tf shelve HelloWorld_TestMe c:\projects\*.cs /recursive

В следующем примере удаляется набор полок HelloWorld_24:

c:\projects> tf shelve HelloWorld_24 /delete