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) 中的版本控制的文件。
注意
创建 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]]
参数
参数
Argument
说明
<itemspec1> [<itemspec2>...<itemspecN>]
指定要销毁的文件或文件夹的服务器路径。 使用多个 itemspec
值删除多个项。 例如,tf destroy $/TeamProject1 $/teamProject2 $/TeamProject3
。
不支持本地路径。
<versionspec>
为 /keephistory
或 /stopat
选项提供一个版本,例如 C58
。 允许的值为 date
、tip
或特定变更集。 有关 TFVC 如何分析版本规范以确定哪些项在其范围内的详细信息,请参阅使用 Team Foundation 版本控制命令。
<username>
为 /login
选项提供值。 可以将 username
值指定为 DOMAIN\username
或 username
。
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 元数据 7 天后,内容将由另一个清理进程删除。 默认情况下,此内容清理过程每天运行一次。
/noprompt
或 /i
指定文件的销毁是非交互式的。 /i
是 /noprompt
的别名。
/silent
指定当你销毁文件或文件夹时,输出不会写入命令提示符窗口。
/login
指定用户名和密码,以便使用 TFVC 对用户进行身份验证。
/collection
指定项目集合。
注解
当你使用 tf destroy
销毁版本控制文件时,TFVC 的应用层将收到销毁请求并检查你是否是“Team Foundation 管理员”安全组的成员。 如果你不是该组成员,系统将显示一个告知你“由于你权限不足,无法执行操作”的错误消息对话框。
在系统验证你的权限后,将运行 destroy 命令。 此命令可删除所有文件引用、搁置集和挂起的更改。 当下一次清理 Azure DevOps Server 不再引用的内容时,将实际销毁(即永久删除)文件。 你还可以指定 /startcleanup
选项,以便在 tf destroy
运行后立即清理文件。
如果在未指定 /i
和 /preview
的情况下运行 tf destroy
,系统将为每个 filespec
值显示控制台“是”或“否”提示。 否则,你可以指定“全都是”。
如果未指定
/keephistory
,则交互式文本将显示挂起的更改(如果存在的话)警告。 如果你想要详细了解更改,则交互式文本指向/preview
。如果指定
/keephistory
,你还将收到“是”、“否”或“全都是”文本提示。 如果你选择“是”或“全都是”,销毁过程就会启动,并且已销毁项的服务器路径将显示在命令提示符窗口中。
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 操作会将这些文件视为已销毁文件:
更改内容。 如果你尝试更改已销毁文件的内容(例如编辑或分支),系统将发出一条指示内容已被销毁的错误消息。
分支、合并或取消搁置。 如果你尝试分支、合并或取消搁置已销毁的项,系统将发出一条指示项的内容已被销毁的错误消息。
销毁以前删除的项
如果删除了某个项,则会向其附加删除 ID 并导致文件名更改。
tf destroy 对 TFVC 存储库代码搜索的影响
代码搜索不处理 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。