销毁命令 (Team Foundation 版本控制)

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018

Visual Studio 2022 |Visual Studio 2019 |Visual Studio 2017 |Visual Studio 2015 |Visual Studio 2013

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

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

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

删除文件后,可以同步 Team Foundation 仓库。 否则,仓库不会与销毁的项同步。

先决条件

若要使用 destroy 命令,必须属于 Team Foundation Administrators 安全组。 有关详细信息,请参阅 默认 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 等版本。 允许的值是日期、提示或特定变更集。 有关 Team Foundation 如何分析版本规范以确定其范围内的项的详细信息,请参阅 使用 Team Foundation 版本控制命令

username

提供 /login 选项的值。 可以将用户名值指定为 DOMAIN UserNameUserName。

TeamProjectCollectionUrl

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

选项

选项

说明

/keephistory

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

/stopat

可选。 仅当指定 了 /keephistory 时,才能使用。

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

/stopat 的默认版本是提示 (T) 项的最新签入版本。

不能使用标签或工作区 versionspec 值指定 /stopat 选项的项。

/preview

在命令提示符窗口中显示要销毁的文件。 在预览模式下运行 tf 销毁 时,文件实际上不会销毁。

注意

命令提示符窗口中的文本显示“已销毁”一词,其中包含要销毁的每个文件。 但是,使用 /preview 选项时,文件实际上不会销毁。

/startcleanup

强制 TFVC 元数据清理过程在删除完成后立即启动。 如果用户未指定 /startcleanup,则数据库维护清理所有不再由Visual Studio Team Foundation Server引用的文件时,将发生销毁的元数据清理过程。 默认情况下,清理计划每 5 天运行一次。 清理 TFVC 元数据后的七天,内容将由另一个清理过程删除。 默认情况下,此内容清理过程每天运行一次。

/noprompt

/i

指定文件销毁为非交互式文件。 /i/noprompt 的别名。

/Silent

指定销毁文件或文件夹时,输出不会写入命令提示符窗口。

/login

指定使用Team Foundation Server对用户进行身份验证的用户名和密码。

/collection

指定项目集合。

注解

使用 tf 销毁销毁版本控制文件时,Team Foundation Server的应用程序层会收到销毁请求,并检查你是否是 Team Foundation Administrators 安全组的成员。 如果你不是成员,系统将显示一个错误消息对话框,告知你没有足够的权限来执行该操作。

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

如果在未指定 /i/preview 的情况下运行 tf 销毁,系统会为每个 filespec 值显示控制台“是”或“否”提示。 否则,可以指定 “是”到所有。 如果未指定 /keephistory,系统会提示显示一个交互式文本,警告挂起的更改(如果存在)。 如果需要有关更改的详细信息,交互式文本指向 /preview 。 如果指定 /keephistory,则还会提示输入 “是”、“ ”或“ 所有 ”文本。 如果选择 “是 ”或“ 全部”,则销毁过程将启动,销毁项的服务器路径将显示在命令提示符窗口中。

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

如果将 versionspec 值指定为提示,命令提示符窗口中显示的服务器路径包括删除 ID。 例如,X123 可能显示在命令提示符窗口中。

如果使用 /preview 选项,则不会销毁文件,但命令行文本显示将销毁的文件。 例如,如果在命令行中键入 tf 销毁 /preview $/Test1/MyProject/MyProject/Program.cs,则命令窗口将显示以下文本:

已销毁: $/Test1/MyProject/MyProject/Program.cs

但是,文件实际上不会被销毁,因为你使用了 /preview 选项。

有关如何查找 tf 命令行实用工具的详细信息,请参阅 使用 Team Foundation 版本控制命令

/keephistory 对其他版本控制操作的影响

如果指定 /keephistory 选项来保留已销毁文件的历史记录,则文件将被视为由以下 Team Foundation 版本控制操作销毁:

  • 更改内容 如果尝试更改已销毁文件的内容(例如编辑或分支),系统会发出一条错误消息,指出内容已被销毁。

  • 分支、合并或取消保留 如果尝试分支、合并或取消保留已销毁的项,系统会发出一条错误消息,指出已销毁项目的内容。

销毁以前删除的项目

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

代码搜索不会处理 TF DESTROY 通知,因此对 TFVC 存储库使用 TF DESTROY 不会自动删除搜索索引中的文件。 因此,这些文件将显示在代码搜索结果中。 为了避免这些幽灵文件方案,建议用户在 TF DESTROY 操作之前删除文件。

示例

说明

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

代码

C:\pi\ws1>tf destroy $/proj/pi/a.cs

说明

以下示例删除命令行中的文件夹 aFolder

代码

C:\tf delete $/MyTeamProject/aFolder

说明

若要销毁已删除的项 ,aFolder 必须在命令行键入:

代码

tf destroy $/MyTeamProject/sFolder;x123

其中 x123 是删除 ID。