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


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

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

Visual Studio 2019 | Visual Studio 2022

Используйте команду tf destroy для уничтожения или окончательного удаления управляемых версий файлов из Team Foundation Version Control (TFVC).

Заметка

Удаление репозитория TFVC в Azure Devops не допускается после его создания. Команда tf destroy будет уничтожать только файлы или папки, управляемые версией, или окончательно удалять, но не будут удалять репозиторий TFVC. Он по-прежнему появится в списке параметров с удаленным сообщением.

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

Прежде чем запускать tf destroy без параметра /keephistory, сначала удалите файлы, которые нужно уничтожить. Дополнительные сведения см. в статье Удаление файлов и папок из элемента управления версиями.

После удаления файлов можно синхронизировать хранилище TFVC. В противном случае хранилище не будет синхронизировано с уничтоженными элементами.

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

Чтобы использовать команду destroy, перейдите к группе безопасности администратор ов Team Foundation. Дополнительные сведения см. в разделе разрешения TFVC по умолчанию.

Синтаксис

tf destroy [/keephistory] <itemspec1>[;<versionspec>][<itemspec2>...<itemspecN>] 
[/stopat:<versionspec>] [/preview] [/startcleanup] [/noprompt] [/silent] [/login:username,[password]] [/collection:TeamProjectCollectionUrl]]

Параметры

Аргументы

аргумент

описание

<itemspec1> [<itemspec2>...<itemspecN>]

Указывает путь сервера к уничтожению файла или папки. Используйте несколько значений itemspec для удаления нескольких элементов. Например, tf destroy $/TeamProject1 $/teamProject2 $/TeamProject3.

Локальные пути не поддерживаются.

<versionspec>

Предоставляет версию, например C58 для параметров /keephistory или /stopat. Допустимые значения : date, tipили определенный набор изменений. Дополнительные сведения о том, как TFVC анализирует спецификацию версии, чтобы определить, какие элементы находятся в пределах области, см. в разделе Использование команд управления версиями Team Foundation.

<username>

Предоставляет значение для параметра /login. Можно указать значение username как DOMAIN\username или username.

TeamProjectCollectionUrl

URL-адрес коллекции проектов, содержащей файлы, которые необходимо уничтожить, например, http://myserver:8080/tfs/DefaultCollection.

Параметры

параметра

описание

/keephistory

Необязательный. Указывает, что журнал файла сохраняется даже при уничтожении его содержимого. Этот параметр нельзя указать с параметром /preview.

/stopat

Необязательный. Можно использовать только в том случае, если также указана /keephistory.

Указывает версию файла и файлы, которые следуют после этого, для которого сохраняется журнал.

Версия по умолчанию для /stopattip (T) для последней версии элемента.

Нельзя использовать значения меток или рабочей области versionspec, чтобы указать элемент для параметра /stopat.

/preview

Отображает файлы, которые будут уничтожены в окне командной строки. При выполнении tf destroy в режиме предварительной версии файлы не уничтожаются.

Заметка

Текст в окне командной строки отображает слово уничтоженные с каждым файлом, который будет уничтожен. Однако файл фактически не уничтожается при использовании параметра /preview.

/startcleanup

Принудительно запускает процесс очистки метаданных TFVC сразу после завершения удаления. Если пользователь не указывает /startcleanup, процесс очистки уничтоженных метаданных происходит, когда обслуживание базы данных очищает все файлы, на которые больше не ссылается Azure DevOps Server. По умолчанию очистка планируется выполнять каждые пять дней. Через семь дней после очистки метаданных TFVC содержимое удаляется другим процессом очистки. По умолчанию этот процесс очистки содержимого выполняется один раз в день.

/noprompt или /i

Указывает, что уничтожение файлов неинтерактивно. /i — это псевдоним для /noprompt.

/silent

Указывает, что при уничтожении файлов или папок выходные данные не записываются в окно командной строки.

/login

Указывает имя пользователя и пароль для проверки подлинности пользователя с помощью TFVC.

/collection

Указывает коллекцию проектов.

Замечания

При использовании tf destroy для уничтожения файлов управления версиями уровень приложений TFVC получает запрос на уничтожение и проверяет, является ли вы членом группы безопасности администраторов Team Foundation. Если вы не член, система отображает диалоговое окно с сообщением об ошибке, которое сообщает, что у вас нет достаточных разрешений для выполнения операции.

После проверки разрешений система запускает команду destroy. Эта команда удаляет все ссылки на файлы, наборы полок и ожидающие изменения. Фактическое уничтожение файлов, которое является постоянным удалением, происходит при следующем удалении содержимого, на которое больше не ссылается Azure DevOps Server. Можно также указать параметр /startcleanup для очистки файлов сразу после выполнения tf destroy.

Если вы выполняете tf destroy без указания /i и /preview, система отображает консоль да или запрос для каждого значения filespec. В противном случае можно указать Да для всех.

  • Если вы не указываете /keephistory, появится интерактивный текст, предупреждающий о ожидающих изменениях, если они существуют. Интерактивный текст указывает на /preview, если требуется дополнительная информация об изменениях.

  • Если указать /keephistory, вам также будет предложено да, Нетили да для всех текста. Если выбрать Да или Да ко всем, процесс уничтожения запускается, а пути к уничтоженным элементам отображаются в окне командной строки.

Destroyed: <serverItem1>
Destroyed: <serverItem2>
Destroyed: ...

Если вы указали значение versionspec как tip, пути к серверу, отображаемые в окне командной строки, включают идентификаторы удаления. Например, Destroyed: $/Test1/MyProject;X123 может появиться в окне командной строки.

Если вы используете параметр /preview, файлы не уничтожаются, но текст командной строки отображает файлы, которые будут уничтожены. Например, если ввести tf destroy /preview $/Test1/MyProject/MyProject/Program.cs в командной строке, в командном окне отобразится следующий текст:

Destroyed: $/Test1/MyProject/MyProject/Program.cs

Однако файл фактически не уничтожен, так как использовался параметр /preview.

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

Влияние /keephistory на другие операции управления версиями

Если указать параметр /keephistory для сохранения журнала уничтоженных файлов, файлы обрабатываются как уничтоженные следующими операциями TFVC:

  • Изменение содержимого. Если вы пытаетесь изменить содержимое уничтоженного файла, например изменить или ветвь, система выдает сообщение об ошибке, которое указывает, что содержимое было уничтожено.

  • Branch, merge или unshelve. Если вы пытаетесь ветвить, объединить или отменить уничтоженные элементы, система выдает сообщение об ошибке, которое указывает, что содержимое элементов было уничтожено.

Удаление ранее удаленных элементов

Если элемент уже удален, идентификатор удаления присоединяется к нему и приводит к изменению имени файла.

Поиск кода не обрабатывает уведомления tf destroy, поэтому использование tf destroy для репозиториев TFVC не будет автоматически удалять файлы из индекса поиска. В результате эти файлы отображаются в результатах поиска кода. Чтобы избежать этих сценариев фантомных файлов, удалите файлы перед операцией tf destroy.

Примеры

Следующий пример окончательно удаляет файл a.cs.

tf destroy $/proj/pi/a.cs

В следующем примере удаляется папка, aFolder:

tf delete $/MyTeamProject/aFolder

Чтобы уничтожить удаленный элемент aFolder, введите в командной строке:

tf destroy $/MyTeamProject/aFolder;x123

где x123 является идентификатором удаления.