销毁受版本控制的文件

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 的源代码管理器中查看该历史记录。 有关详细信息,请参阅 History 命令获取项的历史记录

  • 使用 /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