Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Darcs — это распределённая система управления версиями, созданная Дэвидом Раунди. Ключевые особенности включают в себя возможность выбора изменений для принятия из других репозиториев, взаимодействие как с другими локальными (на диске) репозиториями, так и с удалёнными репозиториями через SSH, HTTP или электронную почту, а также необычно интерактивный интерфейс. Разработчики также подчёркивают использование современных программных средств для проверки корректности: выразительная система типов функционального языка программирования Haskell обеспечивает соблюдение некоторых свойств, а рандомизированное тестирование с помощью QuickCheck подтверждает многие другие. Название является рекурсивным акронимом от Darcs Advanced Revision Control System.
Darcs is a distributed version control system created by David Roundy. Key features include the ability to choose which changes to accept from other repositories, interaction with either other local (on disk) repositories or remote repositories via SSH, HTTP, or email, and an unusually interactive interface. The developers also emphasize the use of advanced software tools for verifying correctness: the expressive type system of the functional programming language Haskell enforces some properties, and randomized testing via QuickCheck verifies many others. The name is a recursive acronym for Darcs Advanced Revision Control System.
История
Darcs возник из усилий Дэвида Ронди по разработке нового формата патчей для GNU arch в июне 2002 года. Эти обсуждения не привели к внесению кода в Arch, но послужили основой для разработки теории патчей. После написания первоначальной версии Darcs на C++, версия на Haskell была написана осенью 2002 года и опубликована в апреле 2003 года. Darcs 2.0 был выпущен в апреле 2008 года и представил более надёжный формат репозитория, а также новую семантику патчей под названием "darcs 2", направленную на минимизацию экспоненциальных конфликтов при слиянии. Текущая стратегия разработки сосредоточена на реализации оптимизаций и добавлении новых функций, при этом сохраняется тот же формат репозитория.
Darcs evolved out of David Roundy's efforts to design a new patch format for GNU arch in June 2002. These discussions didn't lead to any code being committed to Arch, but did lead to the conception of the theory of patches. After writing an initial version of Darcs in C++, the Haskell version was written in Autumn 2002 and released to the public in April 2003. Darcs 2.0 was released in April 2008 and introduced a more robust repository format, as well as a new patch semantic called "darcs 2", aimed at minimizing exponential merge conflicts. The current development strategy focuses on implementing optimizations and adding new features, while maintaining the same repository format.
Недостатки
Darcs критикуется за проблемы с производительностью. Это включает в себя сложности, связанные с алгоритмами слияния в Darcs 1.x, которые демонстрировали экспоненциальный рост времени, необходимого для разрешения определенных конфликтов. Хотя в последующих версиях Darcs эта проблема не была решена полностью, частота возникновения экспоненциальных слияний заметно снизилась. Ошибки, приводящие к невозможности слияния рекурсивных конфликтов, всё ещё существуют.
Darcs has been criticized for its performance issues. This includes challenges related to the merge algorithms of Darcs 1. x, which showed exponential work to merge certain conflicts. Although not resolved completely in the subsequent versions of Darcs, the frequency of exponential merges did show noticeable reductions. Bugs still remain in which merging of recursive conflicts fails.