
87
2.2.3. Средства коллективной работы над проектом автоматизации
Система управления версиями — программное обеспечение для облегче
ния работы с изменяющейся информацией. Система управления версиями поз
воляет хранить несколько версий одного и того же документа. Регистрируя из
менения в одном или нескольких файлах, система управления версиями дает
возможность вернуться к предыдущим версиям этих файлов на произвольный
момент времени.
Такие системы наиболее широко используются при разработке программ
ного обеспечения для хранения исходных кодов разрабатываемой программы.
Применяется несколько типов систем управления версиями.
Многие предпочитают управлять версиями, копируя файлы в новый ката
лог на собственном локальном компьютере. Этот подход прост и поэтому рас
пространен, но не очень надежен. Кроме того, версии доступны только одному
разработчику
Необходимость сотрудничать с разработчиками за другими компьютера
ми, заставила создать и применять централизованные системы контроля версий.
В таких системах, как Subversion (SVN), есть центральный сервер, на котором
хранятся все версии файлов, и ряд клиентов, которые получают копии файлов из
него. На клиента никогда не передается весь проект целиком - только файлы, над
которыми ведется работа. Администрировать централизованные системы намно
го легче, чем локальные, но при таком подходе есть и несколько серьёзных не
достатков: поскольку вся история проекта хранится в одном месте, есть риск по
терять всё.
Распределенные системы управления версиями не полагаются на един
ственный центральный сервер для хранения всех версий проекта.
В таких системах как Git и Mercurial клиенты не просто выгружают по
следние версии файлов, а полностью копируют весь репозиторий. Поэтому в
случае, когда выходит из строя сервер, через который шла работа, любой кли
ентский репозиторий может быть скопирован обратно на сервер, чтобы восста
новить базу данных.