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