TFS создает папку $tf с гигабайтами файлов .gz. Могу ли я безопасно удалить его?

Я использую визуальную студию 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 или абсолютно необходимо отслеживать изменения внутри рабочей области?


person Nico Lubbers    schedule 23.05.2014    source источник
comment
Чтобы избавиться от этого на этапе публикации Arifact сборки VSTS, вы можете просто исключить его во время задачи копирования файлов. Подробнее здесь: github.com/Microsoft/azure-pipelines-agent/issues/859   -  person tom redfern    schedule 09.11.2018


Ответы (3)


TFS хранит хэш и некоторую дополнительную информацию обо всех файлах в рабочей области, чтобы иметь возможность отслеживать изменения для локальных рабочих областей и быстро обнаруживать изменения в файлах. Он также содержит сжатую базовую версию ваших файлов. Бинарные файлы и уже сжатые файлы будут занимать довольно много места. Простые файлы .cs должны оставаться очень маленькими (в зависимости от размера кластера FAT/NTFS).

Если вы хотите избавиться от них, установите тип рабочей области на рабочее пространство сервера, но потеряете преимущества локальных рабочих мест.

Удаление этих файлов будет только временным, поскольку TFS заставит их восстановить, как только вы выполните операцию Get.

Вы можете уменьшить размер этой папки, выполнив несколько действий:

  • Создавайте небольшие целевые рабочие области (хватайте только те элементы, которые вам нужны, чтобы внести необходимые изменения)
  • Скройте папки, исключите папки, содержащие ненужные вам элементы. Особенно папки, содержащие много больших двоичных файлов
  • Поместите свои зависимости в пакеты NuGet вместо того, чтобы проверять их в системе управления версиями.
  • Поместите свое рабочее пространство TFS на диск с небольшим размером кластера NTFS/FAT (размер кластера 64 КБ серьезно увеличит объем требуемого дискового пространства, если все, что у вас есть, это файлы размером 1 КБ.

Чтобы настроить рабочую область сервера, измените параметр, скрытый в разделе дополнительных настроек рабочей области: введите здесь описание изображения

person jessehouwing    schedule 23.05.2014
comment
Это работает. Я пробовал уровень сервера, но теперь я понимаю, что это был неправильный уровень. При открытии одной коллекции проектов также есть возможность работать на уровне сервера, установив параметр в: Team Explorer › Настройки › Коллекция командных проектов › Управление исходным кодом › Настройки рабочей области › Сервер, но это не на всей рабочей области. С вашим решением намного лучше. - person Nico Lubbers; 23.05.2014
comment
Этот параметр задает по умолчанию новые рабочие области, но существующие рабочие области останутся в своей исходной конфигурации. Вы даже можете установить его на Local независимо от настроек коллекции проектов. Хотя я предпочитаю локальные рабочие пространства, мне достаточно удаления бита только для чтения :). - person jessehouwing; 23.05.2014

Простой ответ: я удалил файлы $tf один раз: в результате новые добавленные файлы появились в моих ожидающих изменениях, но когда я изменил существующий файл, изменение не появилось в моем ожидающие изменения. Так что я бы не рекомендовал удалять эту папку.

person Niels    schedule 31.10.2014
comment
Где находится эта папка $tf? - person Sami; 22.01.2020

Чтобы ответить на исходный вопрос, ответ - да. Однако для того, чтобы TFS могла отслеживать изменения, ее нужно будет создать заново, хотя и с меньшим количеством папок и гораздо меньшим дисковым пространством. Для этого:

  1. Сначала удалите все папки tf$, находящиеся в текущей папке рабочей области.
  2. Далее переместите все оставшееся содержимое исходной папки в другую пустую папку, желательно одну на другом диске;
  3. Выполните «Получить последнюю версию» в исходной (теперь пустой) папке рабочей области (это приведет к созданию одной папки tf$ в этой исходной папке).
  4. Теперь скопируйте все содержимое, которое вы переместили, в папку резервного копирования поверх результатов «Получить последние» в исходной папке рабочей области.

Выполняя эти шаги в указанном порядке, вы получите записи tf$, необходимые TFS, но в одной папке и гораздо более компактную — кроме того, дельты любых сделанных вами изменений, которые не были зарегистрированы, будут сохранены и распознает их как ожидающие изменения, как и должно быть.

В нашем C++-решении Certitude AMULET есть 72 продвинутых проекта, и мы должны делать это раз в месяц, чтобы поддерживать разумную скорость компиляции и поиска.

person Scott Deaver    schedule 18.12.2016