2012-02-16 1 views
2

У меня есть Team Foundation Server, который имеет ограниченное дисковое пространство. Чтобы сохранить его, мне нужно удалить старые версии файлов, которые он хранит.Как сделать TFS автоматически удалять старые версии файлов?

В идеале, я бы только хочу, чтобы удалить версию, если:

  1. Он старше определенной даты, и
  2. Он имеет минимум 15 версий

Как я сделай это?

+2

Жесткие диски более безопасны для обновления, чем удаление старых версий файлов из базы данных TFS. – DaveShaw

+0

Что такое HDD? Не могли бы вы дать мне дополнительную информацию? –

+0

HDD - это жесткие диски. Я думаю, что Дейв здесь. Было бы ужасно плохой идеей начать удаление старых версий из tfs для существующих элементов, контролируемых исходным кодом. – jessehouwing

ответ

4

Нет стандартного способа сделать это, и есть причина для этого. Обычно TFS пытается сохранить только базовый файл и отличия от него, поэтому, если вы начнете удалять старые версии, вы не получите многого. Максимальный размер этих двух версий.

Обновление дискового пространства вашего сервера TFS, безусловно, является долгосрочным решением.

Если вы хотите уменьшить размер своих проектов, подумайте об уничтожении старых ветвей, которые больше не нужны. You can destroy whole files and folders which will remove them and the history associated to them from TFS. По умолчанию вы можете получить доступ только к этой функции через командную строку, и вам нужно иметь разрешение на уничтожение элементов в TFS. There is an extension for the Source Control Explorer that adds the Destroy command to the context menu in Visual Studio.

Если вы используете автоматические тесты с сервера Team Build, тогда тестирование вложений также может быть причиной того, что ваш сервер TFS будет расти из его выделенного пространства. Microsoft released a command line utility to clean up the Test Attachments.

Если вы действительно хотите сбросить историю версий, вы можете разделить свой код на чистый проект команды и затем вывести из эксплуатации старый.

2

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

Вы можете запустить следующий SQL-запрос в своей базе данных Tfs_Collection, чтобы увидеть, какие таблицы потребляют наибольшее пространство.

-- Table rows and data sizes 
CREATE TABLE #t ( [name] NVARCHAR(128), [rows] CHAR(11), reserved VARCHAR(18),  data VARCHAR(18),  index_size VARCHAR(18), unused VARCHAR(18)) 
GO 

INSERT #t 
EXEC [sys].[sp_MSforeachtable] 'EXEC sp_spaceused ''?''' 
GO 

SELECT 
    name as TableName, 
    Rows, 
    ROUND(CAST(REPLACE(reserved, ' KB', '') as float)/1024,2) as ReservedMB, 
    ROUND(CAST(REPLACE(data, ' KB', '') as float)/1024,2) as DataMB, 
    ROUND(CAST(REPLACE(index_size, ' KB', '') as float)/1024,2) as IndexMB, 
    ROUND(CAST(REPLACE(unused, ' KB', '') as float)/1024,2) as UnusedMB 
FROM #t 
ORDER BY CAST(REPLACE(reserved, ' KB', '') as float) DESC 
GO 

DROP TABLE #t 
GO 

Если вы используете Microsoft Test Manager, возможно, что в тестовых приложениях используется больше места, чем вы думали. Взгляните на это сообщение в блоге для получения дополнительной информации о том, как интерпретировать этот запрос и что делать: TFS2010: Test Attachment Cleaner and why you should be using it

+0

Спасибо большое Грант! Я запустил этот скрипт и вернусь к вам. Я беру недельный перерыв, я вернусь с запросами позже. Благодаря :) –

 Смежные вопросы

  • Нет связанных вопросов^_^