LINUX.ORG.RU

Pijul 0.11

 , , ,


3

6

Вышла новая версия Pijul — свободной системы управления версиями, основанной на теории патчей и написанной на языке Rust.

Pijul развивает идеи Darcs — Pijul быстрее, лучше, в нём решена проблема экспоненциальной сложности слияния и поддерживаются ветки (для всех, кто спросил и еще спросит «чем оно лучше Git» - ссылка на FAQ)

Слово «Pijul» (произносится «пихуль») — это мексиканское названия Бороздчатоклювого ани, вида птиц семейства кукушковых, чьи особи совместно работают над строительством гнёзд.

Улучшения в версии 0.11:

  • Добавлено частичное клонирование подкаталогов: pijul clone --path и pijul pull --path. При этом скачиваются только те патчи, которые затрагивают указанный подкаталог.
  • Добавлен парсер ~/.ssh/config — теперь Pijul будет автоматически использовать настройки псевдонимов хостов, SSH-прокси, ключей и т. д.
  • Внутренняя архитектура переведена на использование библиотеки Tokio — де-факто стандарта для асинхронного программирования на языке Rust. Минус велосипеды, новичкам будет проще разобраться в коде Pijul.
  • Исправлено много мелких и две крупные ошибки. Одна из них приводила к падению производительности при использовании pijul record, другая в некоторых случаях приводила к изменении содержимого патчей и файлов после клонирования.

Для нужд Pijul автором также развиваются вспомогательные библиотеки:

  • Thrussh — реализация клиента и сервера SSH на языке Rust.
  • Pleingres — клиентская библиотека, реализующая сетевой протокол PostgreSQL на языке Rust.
  • Sanakirja — хранилище «ключ-значение» на языке Rust, основанное на B-деревьях и поддерживающее транзации (аналог LMDB). «Sanakirja» по-фински означает «словарь».

Автор также разрабатывает Pijul Nest — аналог GitHub на основе Pijul и Rust. К сожалению, Nest пока не является свободным проектом.

>>> Подробности



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

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

Thrussh — реализация клиента и сервера SSH на языке Rust.

А что, сишную библиотеку к Rust привязать невозможно, или просто захотелось велосипед изобрести?

Сишная библиотека — это FFI, и всё равно придётся писать безопасную обертку к ней. Если речь не идет о десятках и сотнях kloc, разумнее написать своё, родное.

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

Ты там немного запутался в лайф-таймах

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

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

Так а почему гит писали десятки людей, а даркс нет?

Потому что Git - это система самого св. Линукса Торвальдса.

Нет. Потому что гитхаб.

Нет. Гитхаба тогда еще не было.

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

Мдя, матерые евангелисты запутались в лайфтаймах на трехстрочном хеловорде.

И, в отличие от Си, это не грозит никакими плохими последствиями программе.

Очень перспективный язык, убийца сишек и жаб, лол.

Убийцей жабы Rust является только в запутанном сознании анонимуса.

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

Ах, да. Самое главное забыл:

$ pijul record

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

В 95% случаев на rust лайф-таймы не особо-то и нужно указывать, если только не писать супер-пупер-оптимизированный низкоуровневый код. Так что, нормально. Можно и ошибиться тут. Если что, компилятор всегда поправит в этом.

В чем прикол: в отличие от плюсов на rust можно писать код, особо не задумываясь о выделении и освобождении памяти. Некоторые даже договариваются до того, что в rust «автоматическая система управления памятью, но без сборщика мусора».

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

в rust автоматическая система управления памятью

Которая застряла в каменном веке счетчиков ссылок Rc. Мы то знаем как текут жабаскрипты на счетчиках ссылок.

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

Но в винде fork() и exec() делаются через адские хаки с CreateProcess.

Спасибо за ссылку. Познавательно. Значит, проблема гита под windows — использование posix-эмуляции. Достаточно реализовать bash и основные команды, используя родные win api, и всё там будет ok. Но, по-моему, сама MS сейчас эмулирует nix.

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

А ты в теме во всех темах как затычка.

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

Значит, проблема гита под windows — использование posix-эмуляции.

Это не та проблема, из-за которой можно тормозить в разы. И fork, и exec - операции редкие.

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

В итоге: комиксы, ссылки, какое-то невнятное нытье про rebase. А в чем проблема, так никто и не сказал. Что забавно, потому что мне на память приходит как минимум три-четыре вещи, с которыми иногда приходится иметь дело и которые слегка раздражают. Возможно, отписавшиеся просто не умеют в Git.

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

https://boats.gitlab.io/blog/post/shifgrethor-i/

И что я там должен увидеть? Что чтобы не текло, я сам должен использовать правильные типы и атрибуты, а раст никак не предупредит, что я пишу текучий код, потому что не может? Не сильно далеко ушло от ручного разруливания циклов (посредством слабых ссылок, например).

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

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

Да, анон?

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

В итоге: комиксы, ссылки, какое-то невнятное нытье про rebase. А в чем проблема, так никто и не сказал.

То есть ты даже с картинками не понял? Ну, не расстраивайся.

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

То есть ты даже с картинками не понял? Ну, не расстраивайся.

Ты меня траллируешь или патологически не умеешь писать законченными предложениями?

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

То есть ты даже с картинками не понял? Ну, не расстраивайся.

Ты меня траллируешь

Конечно. Разве это не очевидно?

или патологически не умеешь писать законченными предложениями?

Там на картинке было аж 3 законченных предложения. Могу изложить их суть: у git настолько путаный UI (да и модель данных), что большинство людей толком не умеют им пользоваться.

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

Конечно. Разве это не очевидно?

Я видел IRL лоровцев, и многие настолько отмороженные, что я вполне допускаю, что ты действительно не умеешь по-другому мысли излагать.

Там на картинке было аж 3 законченных предложения. Могу изложить их суть: у git настолько путаный UI (да и модель данных), что большинство людей толком не умеют им пользоваться.

Больше половины взрослых людей в РФ неправильно выбирают себе обувь. Значит ли это, что у ботинок настолько путаный дизайн?

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

Больше половины взрослых людей неправильно выбирают себе обувь. Значит ли это, что у ботинок настолько путанный дизайн?

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

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

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

Люди постоянно затягивают узел так, что не могут развязать. Это к слову о чуваках выше, которые про git merge --abort не слышали.

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

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

Ага, и режут шнурки (rm -rf в твите по ссылке). Такое впечатление, что ты из детского сада пишешь или у тебя дети маленькие.

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

Ага, и режут шнурки (rm -rf в твите по ссылке)

Некоторые режут.

Окей, уговорил - у шнурков тоже путаный UI. Не настолько, как у git, но всё же.

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

Вижу ты особо умный, что грамотный как твоя учительница по русскому. Ты - железная логика, которая не может ошибаться, как процессор пентиум на мельдаунах, не то что несовершенная белковая логика.
Чую, что ты очередной обиженный 5-звездочный. Залогинься.

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

Окей, уговорил - у шнурков тоже путаный UI. Не настолько, как у git, но всё же.

А в чем путанность-то, я так и не понял? У него есть грешок, что многие вещи можно сделать разными наборами команд, но это как бе пережитки прошлого, что поделать.

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

Окей, уговорил - у шнурков тоже путаный UI. Не настолько, как у git, но всё же.

А в чем путанность-то, я так и не понял?

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

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

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

Я про Git, не про шнурки :)

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

Я почти не пользуюсь Git. Вдобавок к тому, что «многие вещи можно сделать разными наборами команд» (Perl одобряет), а флаги могут менять смысл команд на противоположный, еще есть индекс - самая дурацкая концепция из всего, что я знаю в VCS.

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

git-svn

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

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

Я почти не пользуюсь Git.

А, ну ок.

«Я знал, что ты скажешь это» (ц)

Жаль, что я не узнаю о том, какая классная фишка индекс :)

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

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

Ты получаешь локальный коммит и rebase. К слому билда в мастере (транке, наверное) это отношения не имеет.

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

Жаль, что я не узнаю о том, какая классная фишка индекс :)

Я просто как-то не имел с ним проблем, если честно. Индекс и индекс.

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

Жаль, что я не узнаю о том, какая классная фишка индекс :)

Я просто как-то не имел с ним проблем,

Наверное, ты и octopus merge не делал? Куча дублирующих друг друга кульных фишек - примета git.

tailgunner ★★★★★
()

написанной на языке Rust.

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

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

Наверное, ты и octopus merge не делал? Куча дублирующих друг друга кульных фишек - примета git.

Мб. У меня всегда во всех конторах был очень простой workflow, я с такими проблемами не сталкивался.

kirk_johnson ★☆
()
Последнее исправление: kirk_johnson (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.