Destroy 命令 (Team Foundation 版本控制)

Azure DevOps Services |Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 |Visual Studio 2022

使用 tf destroy 命令从 Team Foundation 版本控制(TFVC)销毁或永久删除版本控制的文件。

注意

创建 TFVC 存储库后,不允许删除 Azure Devops 中的 TFVC 存储库。 命令 tf destroy 只会销毁或永久删除版本控制的文件或文件夹,但不会删除 TFVC 存储库。 它仍将显示在已删除邮件的选项列表中。

有时必须清理版本控制系统。 例如,如果某些文件感染了计算机病毒,则必须将其永久从版本控制中删除。 请勿销毁仍需要的文件。 无法撤消销毁操作。

在不使用 /keephistory 选项运行 tf destroy 之前,请先删除要销毁的文件。 有关详细信息,请参阅 从版本控制中删除文件和文件夹

删除文件后,可以同步 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>

提供 /keephistory/stopat 选项的 C58 等版本。 允许的值是 datetip或特定的变更集。 有关 TFVC 如何分析版本规范以确定其范围内哪些项的详细信息,请参阅 使用 Team Foundation 版本控制命令

<username>

/login 选项提供值。 可以将 username 值指定为 DOMAIN\usernameusername

TeamProjectCollectionUrl

包含要销毁的文件的项目集合的 URL,例如,http://myserver:8080/tfs/DefaultCollection

选项

选项

说明

/keephistory

自选。 指定即使文件内容被销毁,文件历史记录也会保留。 无法使用 /preview 选项指定此选项。

/stopat

自选。 仅当同时指定 /keephistory 时,才能使用。

指定文件的文件版本,以及随后保留其历史记录的文件。

/stopat 的默认版本是 tip (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 Administrators 安全组的成员。 如果你不是成员,系统将显示一个错误消息对话框,告知你没有足够的权限来执行该操作。

系统验证权限后,它会运行 destroy 命令。 此命令删除所有文件引用、搁置集和挂起的更改。 下次清理不再由 Azure DevOps Server 引用的内容时,文件的实际销毁是永久删除。 还可以指定 /startcleanup 选项,以在运行 tf destroy 后立即清理文件。

如果在未指定 /i/preview的情况下运行 tf destroy,系统将显示控制台 “是”或 每个 filespec 值“无 提示”。 否则,可以指定 “是”到“所有

  • 如果未指定 /keephistory,系统会提示显示警告挂起更改的交互式文本(如果存在)。 如果需要有关更改的详细信息,交互式文本指向 /preview

  • 如果指定 ,则还 “是”“否”或“对所有 文本 ”是”。 如果选择 “是”到所有,则销毁过程将启动,并且销毁项的服务器路径将显示在命令提示符窗口中。

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

如果将 versionspec 值指定为 tip,则命令提示符窗口中显示的服务器路径包括删除 ID。 例如,命令提示符窗口中可能会显示 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。 如果尝试分支、合并或取消保留已销毁的项,系统将发出一条错误消息,指出项的内容已被销毁。

销毁以前删除的项

如果项目已被删除,则会将删除 ID 附加到它,并导致文件名更改。

代码搜索不会处理 tf destroy 通知,因此对 TFVC 存储库使用 tf destroy 不会自动从搜索索引中删除文件。 因此,这些文件将显示在代码搜索结果中。 若要避免这些虚影文件方案,请删除 tf destroy 操作前的文件。

例子

以下示例永久删除文件 a.cs

tf destroy $/proj/pi/a.cs

以下示例删除文件夹,aFolder

tf delete $/MyTeamProject/aFolder

若要销毁已删除的项 aFolder,请在命令行中输入:

tf destroy $/MyTeamProject/aFolder;x123

其中 x123 是删除 ID。