Darcs

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 17:08, 27 февраля 2017.
Darcs
Darcs.png
Разработчики: Guillaume Hoffmann (and others)
Выпущена: 3 March 2003 года; 16 years ago (2003-03-03)
Постоянный выпуск: 2.12.1 / 5 September 2016 года; 2 years ago (2016-09-05)
Написана на: Haskell
Операционная система: UNIX,
Linux,
BSD,
Mac OS X,
Microsoft Windows
Тип ПО: Version control
Лицензия: GNU GPL
Веб-сайт darcs.net

Darcs — распределённая система управления версиями с широкими возможностями, может быть использована для замены CVS.

Darcs написана на языке Haskell, и может использоваться в GNU/Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD и Microsoft Windows. Darcs включает CGI-скрипт для просмотра репозиториев через web.

В противоположность CVS и Subversion, но подобно Arch и Monotone, Darcs является «распределённой» системой управления версиями. Репозитории — это не синхронизированные друг с другом «острова», а система патчей. Darcs управляет потоками изменений между ними. В этом смысле Darcs принадлежит тому же поколению систем управления версий, что и Mercurial, Bazaar, Git.

Поскольку в Darcs записываются и хранятся патчи, и есть алгебра их вычислений, то легко реализуются такие интересные возможности как спонтанные автоматические ветви, перестановка патчей и ряд других.

Установка Darcs

Некоторые ключевые особенности

  • Автономный режим. Darcs распределяется. Это означает, что рабочий каталог представляет собой самостоятельное хранилище. Вы можете быстро записать свою работу, даже если вы находитесь на дороге, без доступа к серверу или с плохим сетевым соединением. Когда вы вернетесь домой, вы синхронизируете Darcs, чтобы передать изменения на публичный сервер.
  • Локальная подготовка. Darcs позволяет изменять патчи перед отправкой их в удаленном хранилище, или даже выбросить их полностью и начать все сначала.
  • Легкое ветвление и слияние. Каждое хранилище является ветвью. Нет отраслевого управления, за исключением push и pull между хранилищами.
  • Простота совместной работы по электронной почте. Если вы хотите добавить функцию или устранить ошибки в каком-то проекте, то вы можете сделать местный клон, применить изменения, а затем отправить по электронной почте патчи (командой darcs send). Сопровождающие проекта могут решить, следует ли принять или отклонить исправления. Таким образом, вам не нужны привилегии для внесения вклада.
  • Параллельная разработка. Скажем, вы следите за развитием проекта с открытым исходным кодом, и у вас есть некоторые спорные участки, которые не принимаются официальными сопровождающими. Нет проблем - внесите изменения и опубликуйте свой собственный репозиторий. Это ответвление, но оно по-прежнему подключено к главной линии. Всякий раз когда официальный проект вносит изменения, вы можете сделать darcs pull, чтобы получить их, и разрешить любые конфликты. Таким образом, ваше ответвление держится в актуальном состоянии.
  • Вишневый сбор. Если вы когда-либо работали в команде, вы знаете, что часто кто-то хочет внести изменения,которые вы хотите, но которые не могут быть совершены в данном релизе. С Darcs вы можете захватить только одно изменение, потянув его в репозиторий.
  • Интерактивность. Darcs позволяет быть точным и сказать "да" или "нет" на все изменения, которые вы можете включить в свой патч. Таким образом, вы действительно можете создать минимальный набор патчей, или отделить свою работу в нескольких патчей, каждый из которых делает последовательное изменение. Другие команды, такие как darcs pull и darcs push, ведут себя так же.
  • Хостинг. Вы можете разместить ваши репозитории с hub.darcs.net или darcsweb и делиться ими с миром!

Camp

Camp (англ. Commute And Merge Patches) — распределённая система управления версиями, использующая похожую теорию патчей. Целью создания Camp было формализовать теорию патчей Darcs. В частности, для доказательства корректности некоторых аспектов теории был использован Coq. На данный момент разработка Camp ещё далека до завершения и он пока не готов к повсеместному использованию. По словам авторов Camp, он очень похож на Darcs, и авторы надеются что к завершению разработки первого эти два проекта объединятся.

Источники и ссылки