Destroy 命令(Team Foundation 版本控制)

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

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

运行不带 /keephistory 选项的 tf destroy 之前,建议您先删除要销毁的文件。 有关更多信息,请参见 从版本控制中删除文件和文件夹

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

所需权限

若要使用 destroy 命令,您必须属于**“Team Foundation Administrators (Team Foundation 管理员)”**安全组。 有关更多信息,请参见 Team Foundation Server 权限

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)。 允许的值为日期、提示或特定变更集。 有关 Team Foundation 如何分析版本规范以确定哪些项在其范围内的更多信息,请参见命令行语法(版本控制)

username

/login 选项提供值。 可以按域\用户名或用户名的格式指定用户名值。

TeamProjectCollectionUrl

您要销毁的文件所在的团队项目集合的 URL(例如,http://myserver:8080/tfs/DefaultCollection)。

选项

说明

/keephistory

可选。 指定在销毁文件内容时保留文件的历史记录。 此选项不能与 /preview 选项一起指定。

/stopat

可选。 仅当同时指定了 /keephistory 时才可以使用。

指定文件的文件版本,文件的历史记录将从该版本开始保留。

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

无法使用标签或工作区 versionspec 值为 /stopat 选项指定一个项。

/preview

在“命令提示符”窗口中显示要销毁的文件。 当在预览模式下运行 tf destroy 时,文件实际上并未销毁。

注意注意
在“命令提示符”窗口中,每个要销毁的文件旁边都会显示“已销毁”字样。但是,在使用 /preview 选项时,文件实际上并未销毁。

/startcleanup

强制文件内容清理过程在内容删除结束后立即开始。 如果用户未指定 /startcleanup,则只有当数据库维护操作清理完 Visual Studio Team Foundation Server 不再引用的所有文件时,才会执行销毁内容清理过程。 默认情况下,清理过程计划每天运行一次。

/noprompt

/i

指定文件的破坏是非交互式的。 /i/noprompt 的别名。

/silent

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

/login

指定用于在 Team Foundation Server 中验证用户身份的用户名和密码。

/collection

指定团队项目集合。

备注

在使用 tf destroy 销毁版本控制文件时,Team Foundation Server 的应用层接收销毁请求并检查您是否为**“Team Foundation Administrators (Team Foundation 管理员)”**安全组的成员。 如果您不是该组的成员,系统会显示一个错误消息对话框,告知您没有足够的权限来执行该操作。

在系统验证您的权限后,就会运行 destroy 命令。 此命令会删除所有文件引用、搁置集和挂起的更改。 在下一次清理 Team Foundation Server 不再引用的内容时,将执行实际销毁文件的操作(这是一个永久删除操作)。 您还可以指定 /startcleanup 选项,以便在 tf destroy 运行后立即清理文件。

如果在不指定 /i/preview 的情况下运行 tf destroy,则系统对于每个 filespec 值都会显示一个控制台 YesNo 提示。 另外,还可以指定 Yes to all。 如果未指定 /keephistory,则会显示交互式文本提示,警告您注意挂起的更改(如果这些更改存在)。 该交互式文本指向 /preview,您可以借此获取有关这些更改的更多信息。 如果指定 /keephistory,则还会显示 YesNoAll 文本提示。 如果选择 YesAll,则销毁过程开始执行,并且销毁项的服务器路径会显示在“命令提示符”窗口中。

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

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

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

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

但是,由于使用了 /preview 选项,因此该文件实际上并未销毁。

有关如何查找**“tf”**命令行实用工具的更多信息,请参见 Tf 命令行实用工具命令

其他版本控制操作上的 /keephistory 的效果

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

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

  • **分支、合并或取消搁置   **如果尝试对已销毁的项进行分支、合并或取消搁置,则系统会发出一个错误消息,指出这些项的内容已销毁。

销毁先前删除的项

如果某个项已删除,则会将一个删除 ID 附加到该项并导致文件名更改。

示例

说明

下面的示例演示如何永久删除文件 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。

请参见

任务

销毁受版本控制的文件

概念

只能通过命令行执行的操作(Team Foundation 版本控制)

其他资源

Tf 命令行实用工具命令