Хранилище конфигурации - централизованная система контроля версий

Следующая серьёзная проблема, с которой сталкиваются люди, это необходимость взаимодействовать с другими разработчиками. Для её решения были придуманы централизованные системы контроля версий. Примером такой системы является, например, хранилище конфигурации, которое использует платформа 1С:Предприятия 8, а также системы Visual SourceSafe, CVS, Subversion и Perforce. Они имеют один сервер, содержащий все версии файлов, и некоторое количество клиентов, которые извлекают файлы из этого центрального хранилища. Применение централизованных систем контроля версий являлось стандартом на протяжении многих лет.

Такой подход имеет множество преимуществ, особенно перед локальными системами контроля версий. Например, все разработчики проекта более или менее знают, чем занимается каждый из них. Администраторы имеют полный контроль над тем, кто и что может делать, и им гораздо проще администрировать централизованную систему контроля версий, чем оперировать локальными базами данных на каждом клиенте.

Однако данный подход имеет и серьёзные минусы. Самый очевидный минус - это единая точка отказа, которой является центральный сервер. Если этот сервер выйдет из строя на час, то в течение этого времени никто вообще не сможет ни взаимодействовать друг с другом, ни сохранить изменения в файле, с которым он работает. Если жёсткий диск, где хранится центральная база данных, окажется повреждён, а резервных копий не будет, то вы потеряете всю историю проекта, за исключением единичных снимков репозитория, которые сохранились на локальных машинах разработчиков. Кстати, локальные системы контроля версий страдают от той же самой проблемы: поскольку вся история проекта хранится в одном месте, вы рискуете потерять всё.