销毁版本控制的文件

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

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

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

注意

此操作仅适用于命令行。

先决条件

若要使用 destroy 命令,你必须是 Team Foundation Administrators 安全组的成员。 有关详细信息,请参阅 默认 TFVC 权限

运行 tf 销毁的先决条件

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

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

永久销毁版本控制的文件

  • 依次单击"开始"菜单、“所有程序”、“Microsoft Visual Studio 2008”、“Visual Studio Tools”,然后单击Visual Studio命令提示符

    • 若要预览文件 aFile.cs 而不销毁该文件,请在命令提示符处键入:

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

      注意

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

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

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

      此命令在命令提示符窗口中显示有关可能的挂起更改和搁置集的信息。 由于指定 了 /i (非交互式) ,因此在永久删除文件之前,不会提示你输入 “是”、“ ”、“ 是”对话框

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

      >tf destroy /keephistory $/MyTeamProject/aFolder
      

      注意

      /preview 不能使用 /keephistory 指定。

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

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

      若要销毁项目 MyTeamProject 中的所有文件,同时保留文件历史记录,最多包含 2005/10/23/2005,请键入:

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

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

      >tf destroy /startcleanup $/MyTeamProject/aFolder