Darcs, Клуб Микки Мауса Mouseketeers

редактировать
Darcs
логотип darcs
Автор (ы) Дэвид Раунди
Разработчик (и) Гийом Хоффманн и др.
Первый выпуск3 марта 2003 г.; 17 лет назад (2003-03-03)
Стабильный выпуск 2.16.2 / 21 августа 2020 г.; 2 месяца назад (2020-08-21)
Репозиторий Измените в Викиданных
Написано наHaskell
Операционная система Unix, Linux, BSD, Apple macOS, MS Windows
Тип Контроль версий
Лицензия GNU GPL
Веб-сайтdarcs.net Измените это в Викиданных

Darcs - это система распределенного контроля версий, созданная Автор Дэвид Раунди. Ключевые функции включают возможность выбора, какие изменения принимать из других репозиториев, взаимодействие с другими локальными (на диске) репозиториями или удаленными репозиториями через SSH, HTTP или по электронной почте, а также необычно интерактивный интерфейс. Разработчики также подчеркивают использование передовых программных средств для проверки правильности: выразительная система типов функционального языка программирования Haskell обеспечивает соблюдение некоторых свойств, а рандомизированное тестирование с помощью QuickCheck проверяет многие другие. Это рекурсивное сокращение для Darcs Advanced Revision Control System .

Содержание
  • 1 Модель
  • 2 История
  • 3 Недостатки
  • 4 См. Также
  • 5 Ссылки
  • 6 Внешние ссылки
Модель

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

Многие операции ветвления, слияния и выбора вишни, которые потребуют дополнительных команд с системами на основе моментальных снимков, такими как Git или Mercurial, могут быть напрямую выполняется с помощью Darcs с помощью обычных команд «тянуть» и «толкать». С точки зрения пользовательского интерфейса это означает, что в Darcs меньше команд. Эти команды более интерактивны: можно более точно выбрать, какими патчами они хотят обмениваться с удаленными репозиториями.

Патчи репозитория линейно упорядочены. Darcs автоматически вычисляет, можно ли переупорядочить патчи (операция, называемая коммутацией), и как это сделать. Эти расчеты реализуют так называемую «теорию пятен».

Патч Darcs может содержать изменения следующих видов:

  • изменения строк,
  • создание и удаление файлов и каталогов,
  • перемещение файлов и каталогов,
  • подстановка слов (обычно используется при рефакторинге кода, например, переименование всех вхождений «foo» в «bar» в данном файле).

Понятие зависимости между патчами определяется синтаксически. Интуитивно понятно, что патч B зависит от другого патча A, если A предоставляет контент, который изменяет B. Это означает, что патчи, изменяющие различные части кода, по умолчанию считаются независимыми. Чтобы устранить случаи, когда это нежелательно, Darcs позволяет пользователю указать явные зависимости между патчами.

Начиная с версии 2.10, Darcs использует по умолчанию.

История

Darcs возникла в результате усилий Дэвида Раунди по разработке нового формата патчей для GNU arch в июне 2002 года. Эти обсуждения не привели к принятию какого-либо кода до Arch, но привел к концепции теории заплат. После написания начальной версии Darcs на C ++, осенью 2002 года была написана версия Haskell, которая была выпущена для широкой публики в апреле 2003 года. Darcs 2.0 был выпущен в апреле 2008 года и представил более надежный формат репозитория, а также новая семантика патчей под названием «darcs-2», направленная на минимизацию проблем экспоненциального слияния. Текущая стратегия развития направлена ​​на оптимизацию и добавление новых функций при сохранении того же формата репозитория.

Недостатки

Darcs подверглась критике за производительность. Одна из наиболее заметных проблем была связана с алгоритмом слияния в Darcs 1.x, который мог выполнять экспоненциальную работу по слиянию некоторых конфликтов. Хотя проблема не была полностью исправлена ​​в Darcs 2, частота экспоненциальных слияний была уменьшена. По-прежнему остаются ошибки, из-за которых слияние рекурсивных конфликтов не удается.

См. Также
  • Портал бесплатного программного обеспечения с открытым исходным кодом
Ссылки
Внешние ссылки
В Викиучебнике есть книга по теме: Understanding Darcs
Последняя правка сделана 2021-05-16 13:09:35
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте