销毁版本控制的文件

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

Visual Studio 2019 |Visual Studio 2022

随着时间的推移,版本控制服务器会获取越来越多的文件和文件夹。 当你尝试管理磁盘空间要求时,这可能会导致问题。 你可能被迫从版本控制中删除所有项目及其层次结构。 例如,可能只出于学习目的创建项目,或者某些文件受到病毒污染。 因此,作为 TFVC 管理员,有时可能需要销毁版本控制下的文件和文件夹。

以下过程演示如何使用 tf destroy 命令销毁文件和文件夹。 尽管文件已被永久删除,但可以保留与其关联的历史记录。 有关可用于 tf destroy 的选项和参数的详细信息,请参阅 Destroy 命令(Team Foundation 版本控制)

注意

destroy 操作仅在命令行中可用。

先决条件

  • 若要使用 destroy 命令,请成为 Team Foundation 管理员 安全组的成员。 有关详细信息,请参阅默认 TFVC 权限

  • 在不使用 /keephistory 选项运行 tf destroy 之前,请先删除要销毁的文件。 有关详细信息,请参阅 从版本控制中删除文件和文件夹。 删除文件后,其文件名现在包括删除 ID。 例如,如果文件名 aFile.cs,则删除后文件名 aFile.cs;x123,其中 x123 是删除 ID。

    删除文件后,可以同步 TFVC 仓库。 否则,仓库将无法与被销毁的物品保持同步。

永久销毁版本控制的文件

在 Windows 中,选择 “开始”,然后键入 “开发人员命令提示符”。 从搜索结果中,为你的 Visual Studio 版本选择一个开发人员命令提示符,例如 Visual Studio 2022 开发人员命令提示符

  • 为在不销毁文件的情况下预览销毁文件 aFile.cs 的过程,请在命令提示符处输入:

    tf destroy /preview /i $/MyTeamProject/aFile.cs
    

    注意

    命令提示符窗口中的文本会显示 Destroyed: $/MyTeamProject/aFile.cs,但在使用 /preview 选项时,该文件实际上不会销毁。

  • 若要销毁文件 aFile.cs,请在命令提示符处输入:

    tf destroy /i $/MyTeamProject/aFile.cs
    

    此命令在命令提示符窗口中显示有关可能挂起的更改和搁置集的信息。 如果指定 /i 或非交互式,则在文件被永久删除之前,不会通过“是”、“否”或“全部是”对话框提示你。

  • 若要销毁 aFolder 中的所有文件,同时保留其历史记录,请输入:

    tf destroy /keephistory $/MyTeamProject/aFolder
    

    注意

    不能使用 /keephistory 指定 /preview

    此操作保留有关 aFolder中所有文件的历史信息。 可以使用 tf history 命令查看文件的历史记录。 还可以在 Visual Studio 中 源代码管理资源管理器 中查看历史记录。 有关详细信息,请参阅 历史命令获取项目的历史记录。

  • 使用 /stopat 选项可以保留历史信息,包括 versionspec 值。 versionspec 值可以是最新版本、特定变更集或日期。 有关 versionspec 值的详细信息,请参阅使用 Team Foundation 版本控制命令

    若要销毁项目 MyTeamProject 中的所有文件,同时将文件历史记录保留到 2005 年 10 月 23 日,请输入:

    tf destroy $/MyTeamProject /keephistory /stopat:D10/23/2005
    
  • 使用 /startcleanup 选项可以立即清理 Azure DevOps Server 不再引用的文件的 TFVC 元数据。 如果没有此选项,则在数据库由每五天运行的 SQL 进程维护时删除这些元数据。 删除 TFVC 元数据七天后,销毁的文件的内容将由另一个 SQL 进程删除。

    若要立即销毁 aFolder中的所有文件,请输入:

    tf destroy /startcleanup $/MyTeamProject/aFolder