Darcs

Материал из devopswiki
Перейти к: навигация, поиск

Darcs — это распределенная система управления версиями, разработанная для замены традиционных централизованных систем управления версиями, таких как CVS и Subversion. Название darcs, как правило, пишется с маленькой буквы, и является рекурсивным акронимом от Darcs Advanced Revision Control System (в переводе с англ.: продвинутая система контроля версий Darcs).

Общие сведения

Общую информацию Вы можете получить, перейдя по следующим ссылкам:

Darcs в Википедии

Официальная страница проекта

Расширенные сведения

С дополнительной информацией об этом понятии Вы можете ознакомиться ниже.

Ключевые особенности системы включают в себя:

  • возможность выбирать, какие изменения принимать из других репозиториев
  • взаимодействие с другими локальным репозиториями (на диске) или удаленными репозиториями через SSH, HTTP, или по электронной почте
  • необычно интерактивный интерфейс

Разработчики также подчеркивают, что в Darcs используются передовые программные инструменты для проверки правильности кода. Экспрессивная система типа функционального языка программирования Haskell делает обязательными некоторые свойства. А рандомизированное тестирование с помощью QuickCheck автоматически проверяет многое другое.

В отличие от большинства систем управления версиями, которое позволяет пользователю просматривать дерево истории правок исходного кода, как серию снимков в ретроспективе, дерево исходного кода вarcs источник моделируется как набор патчей. Каждый патч не обязательно идёт по порядку в отношении других патчей, т. е. набор патчей - это лишь частично упорядоченное множество. Отдельная версия дерева исходного кода соответствует определенному набору патчей. Этот набор патчей мог или не мог существовать в какой-либо другой момент времени.

A related project called Camp ("Commute and merge patches") attempts to develop Darcs's patch algebra more formally, including the use of Coq to prove the correctness of some of its aspects. Camp remains close to the Darcs project and the authors expect the two projects to merge again once Camp is more mature.

Darcs появилась благодаря стараниям Дэвида Раунди по разработке нового формата патчей для GNU Arch в июне 2002 года. Обсуждения по этому поводу не привели к добавлению какого-либо кода в Arch, но привели Дэвида к созданию своей теории патчей. После написания первоначальной версии darcs на C++, осенью 2002 года была написана версия на Haskell, и обнародована в апреле 2003 года. Версия 2.5 содержит множество улучшений по сравнению с веткой 2.4.х. Наиболее примечательными являются улучшения в производительности в записи и считывании, а также отслеживании опции --bisect.

Связанный проект под названием Camp (англ. "Commute And Merge Patches" - заменять и выполнять слияние патчей) стремится разработать математику патчей darcs еще более формально. В том числе, это выполняется с использованием Coq, чтобы доказать правильность некоторых аспектов системы. Camp по прежнему близок проекту darcs и авторы обеих программ собираются вновь объединить свои проекты, как только Camp станет более зрелым.