Система контроля версий (СКВ) фиксирует все изменения в проекте, позволяет сохранять различные его версии, а при необходимости вернуться к нужному состоянию. 1 Это защищает исходный код от непреднамеренного удаления или повреждения. 1
Как правило, в облачных хранилищах используется централизованная модель работы, при которой все файлы с внесёнными изменениями всех пользователей хранятся в едином хранилище на выделенном сервере. 13
Работа СКВ выполняется по алгоритму: 3
- Извлечение. 3 На компьютер пользователя загружается дерево версий, пользователь выбирает необходимую. 3 Для неё создаётся рабочая копия, в которую вносятся изменения. 3
- Обновление рабочей копии. 3 По мере работы с файлом создаются новые версии, прошедшие эволюционный путь развития от скопированной до текущего состояния. 3
- Фиксация изменений. 3 Она может производиться или по мере закрытия сессии, или по завершении работы над проектом. 3 В большинстве программ каждую фиксацию определяет пользователь, который счёл необходимым сохранить версию после внесения определённых правок. 3
- Ветвление. 13 Если после какого-то изменения документ правится в двух направлениях или двумя пользователями, создаётся дерево вариантов. 3 По результатам версии различных ветвей могут быть слиты в одну. 3
- Слияние. 3 Если над проектом работает два или более пользователя, возможен конфликт изменений. 3 Он возникает тогда, когда изменения противоречат друг другу и не может быть создан объединённый проект. 3
СКВ помогает сохранять большое количество изменений с минимальными затратами на ресурсы. 1 Такие сохранения называются коммитами и содержат информацию о том, какие изменения были внесены в исходный код, но не весь проект целиком. 1