Кіріспе

Darcs – Дэвид Ронди жасаған таратылған нұсқаны басқару жүйесі. Басты ерекшеліктеріне басқа репозиторийлерден қандай өзгерістерді қабылдау керектігін таңдау мүмкіндігі, SSH, HTTP немесе электрондық пошта арқылы басқа жергілікті (дискідегі) репозиторийлермен немесе қашықтағы репозиторийлермен өзара әрекеттесу, сондай-ақ ерекше интерактивті интерфейс кіреді. Дамытушылар сонымен қатар дұрыстықты тексеру үшін жетілдірілген бағдарламалық құралдарды қолдануға ерекше мән береді: функционалдық бағдарламалау тілі Haskell-дің қуатты типтік жүйесі кейбір қасиеттерді қамтамасыз етеді, ал QuickCheck арқылы жүргізілетін кездейсоқ сынақтар көптеген басқаларын растайды. Атауы Darcs Advanced Revision Control System деген сөздердің рекурсивті аббревиатурасы болып табылады.

Тарих

Darcs 2002 жылдың маусым айында Дэвид Раундидің GNU arch үшін жаңа жапсырма форматын жобалау әрекеттерінен туындады. Бұл талқылаулар Arch кодына қосылған өзгерістерге әкелмеді, бірақ жапсырмалар теориясының қалыптасуына ықпал етті. Darcs-тің алғашқы нұсқасы C++ тілінде жазылып, кейін 2002 жылдың күзінде Haskell нұсқасы жазылды және 2003 жылдың сәуірінде көпшілік назарына ұсынылды. Darcs 2.0 2008 жылдың сәуірінде жарық көрді, ол жақсартылған, сенімді қойма форматын және экспоненциалдық біріктіру қақтығыстарын азайтуға арналған "darcs 2" деп аталатын жаңа жапсырма семантикасын ұсынды. Қазіргі даму стратегиясы – оңтайландыруларды енгізу және жаңа мүмкіндіктерді қосу, сонымен бірге қолданыстағы қойма форматын сақтап қалу.

Кемшіліктер

Darcs өнімділік мәселелері үшін сынға ұшырады. Бұл Darcs 1.x нұсқасының біріктіру алгоритмдерімен байланысты қиындықтарды қамтиды, олар кейбір қақтығыстарды біріктіруге экспоненциалды жұмыс жұмсады. Darcs-тің келесі нұсқаларында бұл мәселе толық шешілмегенімен, экспоненциалды бірігудің жиілігі айқын түрде азайды. Рекурсивті қақтығыстарды біріктіру сәтсіз болатын қателер әлі де кездеседі.