LINUX.ORG.RU

Darcs 2.10.2

 , ,


1

8

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

В новой версии основная масса изменений посвящена исправлению ошибок и улучшениям в коде, среди которых:

  • Оптимизация потребления памяти командой patch apply.
  • При работе в Windows больше не используется mmap.
  • Обновлены подсказки.
  • Исправлены недочёты в пакете тестов.
  • Исправлен баг в команде darcs test.
  • Вновь возможна сборка на платформе PowerPC.

Darcs написан на языке программирования Haskell и распространяется под лицензией GPL.

Страница проекта

>>> Анонс релиза

★★★★★

Проверено: Shaman007 ()
Последнее исправление: hateyoufeel (всего исправлений: 1)

Ответ на: комментарий от hateyoufeel

Читают, некоторые вакансии в течении дня закрывают, правда есть и те что висят. В силу странности предложений. Если писать в кафе то отзыв будет больше, но и денег тоже больше попросят в среднем :)

qnikst ★★★★★
()
Ответ на: комментарий от matumba

Мне, при моём багаже в 30 языков (куда входили и ЛИСП, и Перл

ФП, которая суть «инопланетный способ мышления»

неуютно среди кракозябр Хаскеля

У вас взаимоисключающие параграфы. Вам не бывает мучительно больно за бесцельно прожитые годы?

madjestic
()
Ответ на: комментарий от madjestic

Darcs - слово явно мужеского пола.

Я из-за чего придрался? В начала «вышла версия системы Darcs», а в конце «Darcs написан». Вроде как подразумевается «Система написана».

Ну и поле «ssh public key(s) (required for push)» при регистрации доставляет.

Типа сразу в бой?

Radjah ★★★★★
()

Ну мы как-бы и так знали, что на Хаскелле можно написать что угодно. Даже вот и систему контроля версий. Что не делает эту систему более нужной....

Ну написали, и спасибо им. Не стоит этот даркс даже новости на ЛОРе.

gns ★★★★★
()
Ответ на: комментарий от hateyoufeel

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

Xintrea ★★★★★
()
Ответ на: комментарий от hateyoufeel

Хорошо. Вот у меня проблема. Есть PIM-менеджер MyTetra. Формат хранения данных для дерева записей - XML. Я использую MyTetra на нескольких устройствах. Синхронизирую базу записей через GIT, хостюсь на Github.

Для синхронизации использую команду:

git add . & 
git commit -a -m MyTetraFirstStadyCommit & 
git fetch origin & 
git merge origin/master -s recursive -Xtheirs & 
git push origin master


За основу взят принцип: сервер главный (стратегия -Xtheirs).

Но все равно появляются проблемы. Пример:

1. На устройстве A добавил новую запись. В XML-дереве появляется строка типа <record name=«New A99429329»/>. Интернета небыло, синхронизация не сработала.
2. На устройстве B добавил новую запись в том же месте. В XML-дереве появляется строка типа <record name=«New B12754235»/>. Засинхронизировался (т. е. выполнил вышеприведенные команды). В локальном и серверном репозитарии произошла фиксация изменений.
3. На устройстве A появился интернет. Запускаю команды синхронизации, и у меня строка <record name=«New A99429329»/> исчезла из XML файла. Вместо нее появилась <record name=«New B12754235»/>. А должны были остаться обе строки.

Вопрос: darcs имеет возможность на автопилоте разруливать такие коллизии?

Xintrea ★★★★★
()
Ответ на: комментарий от like-all

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

На крестах было написано дохрена кривого софта, а причина проста - плюсы только труп страуса знает, остальные же либо искренне считают, что знают, либо понтуются, а на деле им бы максимум на похапэ писать.

anonymous
()
Ответ на: комментарий от anonymous

И да, кресты в новых стандартах пыжатся чтобы выглядеть как Хаскель, но получается все больше Кобол.

anonymous
()
Ответ на: комментарий от matumba

Берёшь за уши среднего школьника с базовым знанием бейсика. Если он может примерно сказать, что делает кусок кода на тестируемом языке, значит это годнота.

Мне, при моём багаже в 30 языков (куда входили и ЛИСП, и Перл, и Пролог), чувствуется крайне неуютно среди кракозябр Хаскеля. Это не говоря про ФП, которая суть «инопланетный способ мышления». Так что Хаскель с полным правом можно зазвать гиковской маргинальщиной и ни в коем случае не допускать до мэйнстрима!

Уверен, что Ваш код где-то на школьном уровне и есть :-)

anonymous
()
Ответ на: комментарий от Xintrea

Ты уверен, что тебе нужна именно VCS для этого? Больше похоже на базу данных.

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от kirk_johnson

Много чего интересного кануло в лету... Нужность поделия сомнительна. Если только в качестве упражнения в «большом» программировании на хаскеле.

Распределенная VCS без локальных веток, но с формализированной работой с патчами. Ну и что, «шишечка на нашем глюкале ярче всех блестит, полировали долго»? Как-то так получается. Непонятно зачем нужна еще одна VCS. Тех, что есть -то, и то много. :)

gns ★★★★★
()
Ответ на: комментарий от Xintrea

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

DonkeyHot ★★★★★
()
Ответ на: комментарий от Xintrea

Сдается, что никто такого разрулить не сможет. По крайней мере на автомате. Тольк вручную.

gns ★★★★★
()
Ответ на: комментарий от DonkeyHot

для простых случаев добавления/удаления записей можно написать авторазрешатор, но «вообще», скорее всего, не умеет.

Здесь проблема в том, что Darcs понятия не имеет о содержимом и о том как его хотя бы упорядочивать. С одной стороны можно по дате коммита, но не факт что это правильное решение.

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от kirk_johnson

Как эксперимент или академическое упражнение в «алгебре патчей» — может быть. Хаскелянты (или хаскелисты :)) любят все «математическое».

Ну ждем issue tracker'a, основанного на теории категорий :) Будем искать морфизмы в процессе передвижения квадратиков на ежедневных статус-митингах. :)

gns ★★★★★
()
Ответ на: комментарий от gns

Суть не в математичности (по крайней мере, с точки зрения пользователя). Суть в том, что эта самая математичность позволяет (или упрощает, it depends) разработчику доказывать корректность кода. Или даже не кода, а модели, которую он реализует.

devsdc ★★
()
Ответ на: комментарий от devsdc

Вот даже не знаю что тут сказать... То ли напомнить про капитана очевидность, то-ли про проблему останова. Видимо, все-таки про проблему останова.

gns ★★★★★
()
Последнее исправление: gns (всего исправлений: 2)
Ответ на: комментарий от hateyoufeel

Авот, как-то даже неудобно рассуждать про доказательство корректности программ при наличии проблемы останова. Мутота это все, и рассмотрение частных случаев. Если программа корректно «делает не то», то она — правильная?

gns ★★★★★
()
Ответ на: комментарий от gns

Ты путаешь полную корректность (включающую доказательство завершаемости алгоритма) и частичную корректность. Сам по себе хаскелл позволяет доказывать второе. С помощью доп.инструментов возможно и первое.

В других языках (Agda, например) присутствует termination checker, который решает эту проблему.

P.S. Я правильно понимаю, что, согласно твоей логике, инструмент, позволяющий исключить, например, 90% ошибок в программах бесполезен, поскольку не отлавливает оставшиеся 10%?

hateyoufeel ★★★★★
() автор топика
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от gns

Если уж тебе не нравится доказательство корректности программ, подумай про доказательство корректности модели. Я про него не случайно написал.

devsdc ★★
()
Ответ на: комментарий от hateyoufeel

Нет, я не против всяких инструментов. Такого много где, есть тот же Eiffel с его методами проверки предусловий, постусловий и побочных эффектов.

Если есть полезный инструмент. то пусть он и будет. Если еще в этом инструменте разобраться можно было... Хороший инструмент для программиста должен быть не сложней волгринда :)

Шибко много матана надо курить для того, чтобы разобраться в том же Хаскелле. Это все тренировка ума и игрушки для аспирантов, нежели чем реальный инструмент.

gns ★★★★★
()
Ответ на: комментарий от devsdc

Я не против, только не про корректность программ сейчас речь. Алгебра патчей — вещь хорошая, но локальные ветки для распределенного хранилища версий — нужнее.

А зато у нас «верифицированная модель применения изменений!» Ну зашибись, чо...

«А вот наши протоколы проверены расширенной BAN-логикой» — заявление из той же серии.

Создается впечатление, что создатели Darcs a) хотели пописать на хаскелле (что похвально и интересно само по себе) и b) решили реализовать придуманную ими формальную модель. Ну тоже неплохо. Получили «сферическую VCS в ваккууме», имеющую академический интерес.

Ну спасибо, ознакомились.Продолжаем юзать git/mercurial/svn.

gns ★★★★★
()
Ответ на: комментарий от gns

Если есть полезный инструмент. то пусть он и будет. Если еще в этом инструменте разобраться можно было... Хороший инструмент для программиста должен быть не сложней волгринда :)

Ты помнишь, что valgrind не работает без патчей на glibc? :)

kirk_johnson ★☆
()
Ответ на: комментарий от gns

А алгебра патчей, поддерживающая локальные ветки, ещё нужнее :) Вот только её нельзя сделать, не реализовав сначала алгебру патчей.

Я это к чему: доказанно корректные инструменты нужны (в некоторых областях даже нужнее, чем недоказанные, но фичастые), но их развитие по понятным причинам будет происходить медленее. Пока они до нужного уровня не развиты, продолжаем использовать распространённые инструменты и фрустрировать от багов в них, да.

devsdc ★★
()
Ответ на: комментарий от kirk_johnson

А где написано про «простую программу»? Им можно «просто пользоваться», «Цена входа» небольшая. Я как бы за то, что бы все освоили комбинаторы, монады и теорию категорий, и свободно изъяснялись на хаскелле с помощью «стрелок». Глядишь и код на джаваскрипте бы сильно улучшился. :) Но я не могу этого требовать от всех.

gns ★★★★★
()
Последнее исправление: gns (всего исправлений: 1)
Ответ на: комментарий от devsdc

НУ как бы я не первый год использую VCS, и пользовался штуками шестью-семью разными. Вот так что бы с наложением патчей были проблемы — не помню. Скорее система позволяла закоммитить конфликт. Но тут уж никакая алгебра патчей не поможет.

Я же не против. Пусть и этот цветок цветет... Может и понадобится кому всерьез. В конце концов ,эту алгебру патчей можно и еще где-то поиспользовать.

gns ★★★★★
()
Последнее исправление: gns (всего исправлений: 1)
Ответ на: комментарий от gns

Какого именно? Мат.анализ для понимания хаскелла не нужен. Если же ты не можешь осилить пару простых концептов из теории категорий вроде монады, то у меня для тебя плохие новости.

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

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от gns

Но тут уж никакая алгебра патчей не поможет.

А она и не должна помочь. Наличие какой-нибудь красивой модели никоим магическим образом не даёт дополнительные фичи. Зато она может (помимо выше указанного), например, обобщать что-либо, позволяя менее болезненно менять или переносить конкретную область применения. Например, заменить текстовые файлы как область определения патчей на что-нибудь ещё, если будет нужда. ЕМНИП, git не может в бинарные диффы, а это могло бы быть полезно.

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

devsdc ★★
()
Ответ на: комментарий от hateyoufeel

Я Вас не оскорблял, кстати.

Я старый, я умру скоро. У меня уже мозги не работают, куда мне про монады...

gns ★★★★★
()
Ответ на: комментарий от devsdc

Ну вот, darcs тоже писали любители моделей и диванные теоретики, похоже.

Вы нашли друг друга :)))

gns ★★★★★
()
Ответ на: комментарий от gns

Так я диванный теоретик по отношению к darcs, а не по отношению к реальному продакшну.

Впрочем, как знаешь.

devsdc ★★
()
Последнее исправление: devsdc (всего исправлений: 1)
Ответ на: комментарий от devsdc

локальные ветки

А не приходило в голову, что необходимость этого обусловлена неправильным подходом к задаче, и является костылём, компенсирующим просчёты архитектора? Мне почему-то кажется, что в дарксовской модели VCа этот костыль не нужен. От слова «вообще». Нагугленный юзкейс, восхваляющий популярного конкурента, оставляет лишь недоумение: «зачем так сложно?!». Я что-то пропустил?

DonkeyHot ★★★★★
()
Ответ на: комментарий от gns

Шибко много матана надо курить для того, чтобы разобраться в том же Хаскелле. Это все тренировка ума и игрушки для аспирантов, нежели чем реальный инструмент.

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

anonymous
()
Ответ на: комментарий от anonymous

Этточно! похапэ и яваскипт — наше ффсё! :) А мы тут с ентим хаскеллем... Пишут тут пишут (с) П. П..Шариков

gns ★★★★★
()
Ответ на: комментарий от DonkeyHot

Ещё раз: я понятия не имею, что там в darcs происходит. Я всего лишь показываю оппоненту, что его «ненужно» не состоятельно.

devsdc ★★
()
Ответ на: комментарий от devsdc

Извини; хотел получить обоснование критичности «такой как в гите» реализации обсуждаемой фичи.

DonkeyHot ★★★★★
()
Ответ на: комментарий от nezamudich

Ну и шире — тоже все не сильно осмысленно, какую ширину не возьми :)

gns ★★★★★
()
Ответ на: комментарий от hateyoufeel

это позволяет отсеять явных идиотов

зато увеличивает шансы нанять неявного в разы, если не на порядки.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.