Даже при том, что я полностью осведомлен, что версии этого вопроса спросили гугол количества раз, я попытаюсь не повторить их.
У меня есть много наборов многих файлов (некоторые файлы являются маленькими, но некоторые являются большими, как, ~10-20GB). У меня есть несколько серверов, каждый может разместить один или несколько из тех наборов файлов. Конечно, один сервер может разместить 50% общего количества наборов, и другие 50% могут разместить другое количество наборов.
Можно думать о наборе с набора больших медиа-файлов, действительно больших библиотек изображений, законченных приложений, безотносительно, он действительно не имеет значения, пока существуют большие файлы в наборе.
Сервер может обновить свою копию набора в любом моменте времени (или путем замены файлов в наборе с абсолютно новыми файлами, или путем применения патчей к некоторым файлам, которые привели бы к наличию почти тех же файлов только с незначительными различиями).
С другой стороны у меня есть многие клиенты, которые должны смочь получить любой данный набор (или несколько наборов) с серверов, и сохранить их копии наборов актуальными (синхронизировался) с наборами на сервере, каждый раз, когда каждый хочет использовать набор.
Инструменты, которые я рассмотрел, следуют:
Так, вопрос: какой метод распределения/синхронизации (утилиты, подход) подошел бы лучше всего для моей ситуации?
Из решений Вы перечислили, SVN смотрит самое многообещающее. Необходимо будет сохранить по крайней мере 1 копию набора в репозитории, таким образом, Вы будете использовать до 2x пространство (или 3x, если у Вас будет 2 рабочих копии).
В сегодняшний день и возраст, пространство на жестком диске является (обычно) дешевым, таким образом, я не думаю, что необходимые площади были бы слишком большой нагрузки, особенно по сравнению с попыткой сделать Ваше собственное решение.
Можно также хотеть изучить Платформу Синхронизации MS, которая используется SyncToy.