tl; dr : TFS предназначена для изящной обработки больших файлов. Самым большим препятствием, с которым вам придется столкнуться, является пропускная способность сети для загрузки / выгрузки файлов. Вторая проблема связана с объемом памяти на сервере. Предполагая, что вы рассмотрели эти две проблемы, у вас не должно быть никаких других проблем.
Пропускная способность сети: При регистрации или получении файлов накладных расходов очень мало, это должно быть так же быстро, как при обычной загрузке или загрузке HTTP. Если ваши клиенты удалены от сервера в сетевом режиме, им может быть полезно иметь прокси управления исходным кодом TFS в своей локальной сети для ускорения загрузки.
Обратите внимание, что в отличие от некоторых систем контроля версий, TFS не вычисляет и не передает дельты при загрузке или загрузке нового контента. То есть, если у клиента была версия 4 большого текстового файла, а версия 5 добавила несколько строк в конце, некоторые инструменты контроля версий оптимизируют этот процесс, чтобы отправлять только измененные строки. TFS не выполняет эту оптимизацию, поэтому, если ваши файлы часто меняются, клиенты должны будут каждый раз загружать файл целиком.
Серверное хранилище: Дисковое пространство на сервере довольно простое - вам понадобится достаточно места для хранения файлов, кроме этого есть небольшие накладные расходы. TFS не замедлится только потому, что ваш репозиторий содержит большие файлы.
Если эти файлы часто изменяются, вам также необходимо учитывать дисковое пространство, используемое ревизиями. TFS хранит «дельты» между ревизиями файлов, то есть двоичное различие между двумя версиями. Таким образом, если содержимое файла минимально меняется между редакциями, как в типичном случае использования с текстовыми файлами, стоимость хранения должна быть недорогой. Однако, если содержимое полностью изменится, как это обычно бывает с двоичными файлами, такими как изображения или библиотеки DLL, вам потребуется достаточно места на диске для хранения каждой ревизии. (Конечно, вы можете destroy
предыдущие ревизии, чтобы восстановить это пространство.)
Одно замечание по дельтам в TFS: чтобы уменьшить накладные расходы во время регистрации, дельты между ревизиями вычисляются не сразу, есть фоновое задание «deltafication», которое запускается каждую ночь, чтобы вычислить дельты, чтобы урезать пространство. До этого момента каждая ревизия полностью сохраняется в базе данных. Поэтому, если у вас очень большой текстовый файл с ежедневными изменениями, ваши требования к дисковому пространству должны будут это учитывать.
Хранилище клиента: У клиентов должно быть достаточно дискового пространства, чтобы также хранить эти файлы (хотя только в редакции, которую они загрузили). Это может быть уменьшено в отображениях вашего рабочего пространства, так что большой файлы скрыты (или иным образом не включены в ваше рабочее пространство), если они не нужны.
Предупреждение: получение исторических версий: Если вы обнаружите, что часто запрашиваете исторические версии больших файлов (например: я хочу ISO-образ семь изменений назад), то вы заставите сервер применить цепочка дельта, чтобы вернуться к этой ревизии. Если у вас есть несколько клиентов, делающих это одновременно, это может обременять вашу память.