TFS创建一个带有千兆字节.gz文件的$ tf文件夹。我可以安全地删除它吗?

时间:2014-05-23 09:01:39

标签: visual-studio-2012 tfs tfs2012 diskspace tfvc

我正在使用Visual Studio 2012和Microsoft TFS 2012。

在我的c:驱动器上创建的工作区中,会创建一个隐藏文件夹$tf。我怀疑TFS创建了这个文件夹。它潜伏着磁盘空间,因为当前大小为几千兆字节,并且它占整个工作空间所需总千兆字节数的25%磁盘空间。所以这个隐藏的$tf文件夹非常庞大。

结构是这样的:

c:\workspace\$tf\0\{many files with guid in filename}.gz
c:\workspace\$tf\1\{many files with guid in filename}.gz

是否有人知道我是否可以安全删除此$tf文件夹,或者是否有必要跟踪工作区内的更改?

3 个答案:

答案 0 :(得分:54)

TFS在工作空间中保留所有文件的哈希值和一些其他信息,以便它可以对本地工作空间进行更改跟踪并快速检测文件中的更改。它还包含文件的压缩基线。二进制文件和已经压缩的文件会占用相当多的空间。简单.cs文件应保持非常小(取决于您的FAT / NTFS群集大小)。

如果您想摆脱这些,请将工作区类型设置为服务器工作区but lose the advantages of local workspaces

删除这些文件只是暂时的,因为TFS会在您执行Get操作后立即强制重新创建。

您可以通过以下操作来缩小此文件夹的大小:

  • 创建小型,有针对性的工作区(仅抓取您需要进行更改所需的项目)
  • 披风文件夹,不包含您不需要的项目的文件夹。特别是包含大量大型二进制文件的文件夹
  • 将您的依赖项放在NuGet包中,而不是将它们检入源代码控制..
  • 将TFS工作区放在具有较小NTFS / FAT簇大小的驱动器上(如果只有1KB文件,则簇大小为64Kb将严重增加所需的磁盘空间量。

要设置服务器工作区,请更改高级工作区设置部分中隐藏的设置: enter image description here

答案 1 :(得分:7)

简单的答案:我删除了一次$ tf文件:最终结果是新添加的文件显示在我的待处理更改中,但是当我更改现有文件时,更改未显示在我待定的更改中。所以我不建议删除这个文件夹。

答案 2 :(得分:0)

回答原来的问题,答案是肯定的。但是,为了让TFS跟踪更改,需要重新创建它,尽管文件夹更少,磁盘空间更小。要做到这一点:

  1. 首先删除当前工作区文件夹中当前的所有tf $文件夹。
  2. 接下来,将原始文件夹的所有剩余内容移动到另一个空文件夹,最好是另一个驱动器上的一个;
  3. 执行"获取最新消息"进入原始(现在为空)工作区文件夹(这将导致在该原始文件夹中创建单个tf $文件夹)。
  4. 现在将您移动到备份文件夹中的所有内容复制到'获取最新信息的顶部。结果在原始工作区文件夹中。
  5. 通过按顺序执行这些步骤,您将最终获得TFS需要的tf $条目,但是在单个文件夹中并且更加紧凑 - 此外,您所做的任何未经检入的更改的增量将是保留,TFS会将它们识别为待定更改。

    我们的Certitude AMULET C ++解决方案中有72个高级项目,我们必须每月执行一次以保持编译和搜索速度合理。