Распределенная система одновременных версий - Distributed Concurrent Versions System
Разработчики) | elego Software Solutions GmbH |
---|---|
изначальный выпуск | Август 2002 г. |
Стабильный выпуск | 1.0.3 / 25 сентября 2006 г. |
Написано в | C |
Операционная система | Unix-подобный, Windows |
Тип | Контроль версий |
Лицензия | Стандартная общественная лицензия GNU |
Интернет сайт | DCVS |
В Распределенная система одновременных версий (DCVS) это распределенный контроль версий система, которая позволяет разработчикам программного обеспечения, работающим на локально распределенных сайтах, эффективно сотрудничать над программным проектом. DCVS основан на хорошо известной системе контроля версий Система одновременных версий. Код свободно распространяется по лицензиям в стиле GNU и BSD.
Мотивация
CVS основана на чисто централистической организационной модели и предлагает очень небольшую автономную поддержку. Почти все операции по управлению версиями требуют прямого доступа к хранилище. Таким образом, разработка распределенного программного обеспечения по всему миру сталкивается с серьезными проблемами производительности при использовании CVS. DCVS решает эту проблему за счет распространения центрального репозитория CVS на многих сайтах.
Функции
DCVS обеспечивает все функции CVS. Но в отличие от CVS система DCVS может содержать произвольное количество географически распределенных репозиториев, содержимое которых поддерживается в фоновом режиме с помощью расширенной версии CVSup, программа, разработанная Джоном Д. Полстра. Сочетание Репозиторий DCVS, расширенный CVSup сервер и Программа сервера DCVS будет называться DCVS сервер в следующих параграфах.
Все содержимое всех линий разработки может быть проверено с любого из серверов DCVS в Рабочее пространство DCVS принадлежит застройщику. Все операции, которые не изменяют репозиторий, такие как разница, пластырь, бревно, аннотировать и т. д., работают так же, как в CVS, но они всегда используют локальный репозиторий и поэтому работают намного быстрее в распределенном сценарии. Во избежание коллизий и потери данных каждому серверу DCVS назначается набор линий разработки (ветвей DCVS), для которых это ответственность. Изменения в ветке могут быть зарегистрированы только на сервере, который отвечает за ветку. Разделение модификаций по линиям разработки позволяет автоматически переносить и распространять изменения в сети DCVS. Человек, желающий зафиксировать изменения для линии разработки, за которую его локальный сервер DCVS не отвечает, может создать новую линию (ветвь) разработки и зафиксировать изменения в нем. Локальный сервер автоматически отвечает за любую вновь созданную линию разработки.
С другой стороны, каждый разработчик может объединить изменения из линий разработки, за которые его локальный сервер DCVS не несет ответственности, в локальные линии разработки. Таким образом, все изменения, сделанные на любом рабочем сайте, могут быть применены к исходной ветви разработчиками на ответственном сервере DCVS, выполняя слияние операция.
Функциональность изменить наборы позволяет разработчикам производить небольшие наборы изменений, связанных с функцией или дефектом, которые затем могут быть применены другими.
Специальная схема нумерации гарантирует, что линии разработки и дельты могут быть идентифицированы как принадлежащие определенному серверу DCVS. DCVS назначает уникальный ассортимент номеров веток в каждую пару (сервер / коллекция). Все диапазоны для всех серверов и коллекций должны быть взаимоисключающими. Определения серверов, коллекций и диапазонов считываются из одного файла конфигурации. Просматривая содержимое этого файла, каждый сервер DCVS может решить, отвечает ли он за определенную ветвь или дельту данного файла. Если это так, все операции изменения разрешены; в противном случае операции изменения возможны только на соответствующем удаленном сервере.
Также фактические названия конфигураций, теги, однозначно назначаются только одному серверу DCVS с помощью специфичного для сервера суффикса, расширяющего все теги (т.е. _at_dcvs_mydomain_org). Таким образом, конфликтов в пространстве имен тегов возникнуть не может.
История
DCVS был разработан членами команды Elego Software Solutions GmbH в Берлине / Германия. Первый выпуск DCVS состоялся в августе 2002 года. В ноябре 2005 года была выпущена версия 1.0.2.