Как и где TFS 2008 / TFS 2010 хранит наборы изменений?

Я пытаюсь понять, как TFS 2008 (и 2010, если он отличается) хранит и сообщает подробности набора изменений в наборе изменений.

Теперь, когда я фиксирую размещенный в Subversion проект, клиент отправляет diff-файлы на сервер. Поэтому, если я добавил файл и изменил несколько строк в другой, он отправляет что-то вроде "Добавлен файл A.txt, поместите 2 строки"A","B"в B.txt" . Это означает, что я могу вернуть ревизию, так как различия хорошо обратимы - "Удалите файл A.txt и удалите две строки из B.txt" . Я уверен, что то же самое относится и к git.

У меня такое ощущение, что TFS не хранит наборы изменений таким образом (основываясь на слухах и том факте, что я не могу легко откатить ревизии и т. Д.).

Я полагаю, что происходит следующее: если я изменил файлы A, B и C в наборе изменений, то, что на самом деле хранится в наборе изменений, это целая новая копия файлов A, B, C. Не только diff-файлы.

Я прав в этом предположении? Как коммерческое программное обеспечение, я вполне мог поверить, что эта информация недоступна, но я подумал, что буду спрашивать, поскольку поиск в Google ничего не дает!

Как следствие: где хранятся наборы изменений TFS? Я знаю, что SQL-сервер используется для хранения... Чангсеты тоже?

В настоящее время мы используем TFS 2008, но было бы также полезно узнать ответ на 2010 год, так как я думаю, что есть планы по обновлению.

1 ответ

Решение

TFS хранит все данные наборов изменений в базе данных SQL Server. Он хранит код из самого последнего набора изменений во всей своей полноте. Затем он сохраняет различия в предыдущей версии. Одним из преимуществ хранения всего этого в SQL Server является то, что он получает возможность сохранения "все или ничего", предоставляемую транзакциями.

Что касается ГДЕ, где он хранится, вы можете проверить эту запись в блоге http://blogs.msdn.com/b/bharry/archive/2009/04/19/team-foundation-server-2010-key-concepts.aspx

Другие вопросы по тегам