Понятие системы контроля версий. Возможность хранить несколько вариантов одного и того же документа. Централизованная модель и единое хранилище документов. Основные виды систем контроля версий. Характеристики Subversion, Arch, OpenCM, Aegis, Monotone.
Аннотация к работе
ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ВЫСШАЯ ШКОЛА ЭКОНОМИКИ Отделение программной инженерии реферат на тему системы контроля версийСегодня в мире, где существует огромное количество сложных систем, существует необходимость видоизменения электронных документов на различных стадиях их разработки. Однако часто так бывает, что для дальнейшей работы необходима не только последняя версия документа, но и различные предыдущие варианты. Безусловно, можно хранить несколько различных вариантов необходимого документа, но данный способ неэффективен. Нам приходится тратить кучу времени и сил, необходимо особое внимание и велика вероятность ошибки. Данные средства именуются системами контроля версий.Система управления версиями (Version Control System или Revision Control System) представляют собой программное обеспечение для облегчения деятельности с быстро меняющейся информацией. Система контроля версий предоставляет возможность хранить несколько вариантов одного и того же документа. Система контроля версий позволяет разработчикам хранить прошлые версии файлов из разработки и доставать их оттуда. Она хранит информацию о версии каждого файла (и полную структуру проекта) в коллекции, обычно называемой репозиторием. Большинство систем управления версиями используют централизованную модель, когда имеется единое хранилище документов, управляемое специальным сервером, который и выполняет большую часть функций по управлению версиями.Такие системы, в общем случае, не нуждаются в централизованном хранилище: вся история изменения документов хранится на каждом компьютере. Фактически, каждый компьютер, помимо рабочей копии, хранит локальную копию всего хранилища. Когда пользователь такой системы выполняет обычные действия, такие как извлечение определенной версии документа, создание новой версии и тому подобное, он работает со своей локальной копией хранилища. По мере внесения изменений, копии, принадлежащие разным разработчикам, начинают различаться и возникает необходимость в их синхронизации. Описанная модель аналогична созданию отдельной ветки для каждого разработчика в классической системе управления версиями (в некоторых распределенных системах перед началом работы с локальным хранилищем нужно создать новую ветвь).Некоторые системы поддерживают Атомарные Фиксации, которые значат, что состояние всего репозитория меняется полностью. Без Атомарных Фиксаций, каждый файл или часть меняется отдельно и поэтому состояние всего репозитория в любой точке не может быть зафиксировано. Большинство обычных VCS (Version Control System ) систем позволяют объединять изменения между ветвями. Это значит, что изменения, зафиксированные в одной ветви, будут зафиксированы в главной линии или в другой ветви с помощью одной автоматической или, по крайней мере, полуавтоматической операцией. Сервер хранит в репозитории текущую версию (версии) проекта и историю изменений, а клиент соединяется с ним, чтобы получить нужную ему версию или записать новую.Subversion стремится быть лучшей альтернативой CVS (см. приложение 1). Subversion предлагает много полезных улучшений по сравнению с CVS: копирование и переименование файлов и директорий, настоящие атомарные фиксации, эффективная обработка бинарных файлов, способность сетевой работы по HTTP (и HTTPS ). Subversion также имеет Win32 клиент и сервер. Таким образом, можно выделить следующие возможности Subversion: O Реализовано большинство возможностей CVS; O «Дешевые» операции создания ветвей и меток (требуется небольшое фиксированное количество временных и дисковых ресурсов);Изначально Arch была коллекцией shell-скриптов, но сейчас ее основной клиент это tla, который написан на C и должен переноситься на любую UNIX-систему. Arch поддерживает версионные переименования файлов и директорий, а также интеллектуальное объединение, которое может определить, был ли файл переименован и затем чисто применяет изменения. Версия Arch перешагнула 1.0 порог и потому объявлена зрелым и надежным продуктом для любого использования. Arch документирована очень простой онлайн системой помощи и руководства. OPENCM имеет версионные переименования файлов и директорий, атомарные фиксации, автоматическое распространение изменений от ветви в главную ветвь и некоторую поддержку криптографической аутентификации.Aegis - система управления конфигурацией кода созданная Питером Миллером (Peter Miller ). По существу, она использует систему разрешений UNIX для определения, кто имеет доступ для выполнения какой операции. Будучи SCM системой, Aegis пытается обеспечить корректность кода, который был внесен. То есть, она: · Управляет автоматизированными тестами, предотвращает внесения, которые не проходят предыдущие тесты и требует разработчиков добавить новые тесты.Система контроля версий Monotone была создана Грейдоном Хоэм (Graydon Hoare ) и показывает различную философию, чем все системы, приведенные выше.