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)

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

А зачем мешать шелл и сишку, если не секрет?

Потому что SH — язык для написания сценариев. И на нем удобно их писать.

kirk_johnson ★☆
()

парсеры .ssh/config добавляют в двух случаях:

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

угадайте с трех раз...

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

Мы не спорим. Ятолсто намекаю, что существование Tokio не помешает твоему желанию иметь «просто», ну а подкапотная сложность не должна тебя волновать.

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

Мы не спорим. Ятолсто намекаю, что существование Tokio не помешает твоему желанию иметь «просто», ну а подкапотная сложность не должна тебя волновать.

не должна тебя волновать

Это спорно. Повышенная сложность ведет к багам (а в Tokio их довольно много), которые сильно усложнят мне жизнь.

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

ну а подкапотная сложность не должна тебя волновать

Тем более если там будут «точно идеально смешанные» сложные низкоуровневые детали и простые высокоуровневые абстракции.

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

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

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

Лучше скажи зачем тащить в такой софт марсианский раст, который знают полтора землекопа.

Какой же он маргинальный? На нем даже JS'еры пишут :).

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

Линус вообще молодец. И ОС написал, и DCVS. Не всё сам, правда, только начал.

Откуда такой негатив? Rust тащат, потому что он даёт быстрый код и не столь ужасен, как C++. А на Си, ты и сам согласишься, не многим дано писать без 10 лет опыта.

Virtuos86 ★★★★★
()

На данном этапе — неюзабельно, увы. Ждём пока допилят.

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

Но тогда хоть гита не было, отмазка для борщехлебов, мол такое на сишке не сделать.

Такое - не сделать. Git - совсем другая вещь (и ее несколько лет писали десятки людей). А тот же Darcs писался почти в одно лицо.

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

Повышенная сложность ведет к багам

Любая сложность ведет к багам. И лично я не уверен, что сложность Tokio какая-то «повышенная», а не просто адекватная задаче.

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

Любая сложность ведет к багам. И лично я не уверен, что сложность Tokio какая-то «повышенная», а не просто адекватная задаче.

Увидим.

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

Раст тащат потому что модно. А модные погромисты не стануть допиливать и полировать. Надоест — бросят, и никто не подхватит, ибо маргинальщина. Короче, через 20 лет приходите со своим растом, тогда поглядим. А пока только сишка и плюсы, брейнфаки в опенсорсе нафиг не сдались.

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

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

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

не полтора землекопа, а уже больше. В последнее время замечаю в новостях, что что-то запрограммировано на Rust Похоже, его популярность растёт. Значит, будет появляться больше библиотек для него и он будет полезнее.

Эта программа с труднопроизносимым и незапоминающимся названием интересна не как замена git,а как пример активности любителей Rust.

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

Щас взлетает успешно только то, что написано на Go. Т.ч., если напишут на Go - есть шанс, что доползет до популярности Меркуриал.

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

Раст тащат потому что модно.

Да. Так бывает.

А пока только сишка и плюсы, брейнфаки в опенсорсе нафиг не сдались.

Ну да, ну да. Эти 3 ЯП в одном предложении выглядят очень уместными соседями.

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

На нем даже JS'еры пишут

Не аргумент. Сгенерить html из шаблона, дергая готовые либы, любой школьник сможет на любом языке. А разобраться и доработать сложный код на брейнфаке, уже малость сложнее задачка. Жсеры то и со своим жсом ниче не могут, переписывают с нуля сразу.

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

Основной смысл в теории, чтобы проверить её на практике

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

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

Увидим.

Да. Кстати, реактор сделан так, чтобы быть модульным - теоретически, можно запилить свой, если не устраивает стандартный.

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

Да. Кстати, реактор сделан так, чтобы быть модульным - теоретически, можно запилить свой, если не устраивает стандартный.

Да, я знаю.

kirk_johnson ★☆
()

Конечно я всеми руками за появления большего и большего количества кода на Rust, тем более что это отличный язык для компактных cli утилит, которые вместо этого писались бы на C/C++, но не на Python/bash.

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

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

У Tokio, на самом деле, очень простая и логичная архитектура. Сложности возникают только из-за использовая комбинаторов и возникающих при этом трёхэтажных типов. Должно решиться с приходом async/await.

anonymous
()

Пижуль/Пихуль, тхрасш, санариржа... Смузихипстеры, похоже, не слыхали о том, название должно быть благозвучным. Если конечно смузихипстеры хотят, чтобы поделием кто-то пользовался. Никогда нигде не взлетит ни один пихуль, ни одна пидора и не один тхрасш.

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

git реально решает проблему

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

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

Не пользоваться системой контроля версии.

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

Is it possible to refer to a specific version?

Yes! Although nothing is implemented so far

«Да, но пока нет»

зато оно умеет парсить ~/.ssh/config :)))

MDD (marketing driven development)

anonymous
()

ознакомился с FAQ, оттуда сюда

что оказалось, единственное достоинство в правильном разрешении конфликтов в файлах (см ссылочку)

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

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

Юзать Го, там реактор создан Богами-Небожителями. Надо только принял Роба Пайка как своего персонального спосителя.

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

С черрипикингом вполне логично. В чем сила гита? В том, что хранит историю мержей и поэтому может свести сложный мерж веток, которые уже когда-то мержлись между собой и в которые мержились другие ветки к серии относительно простых, не заставляя пользователя повторно устранять конфликты. Рибейзы (к которым также относится черрипикинг), не сохраняют свою родословную, поэтому выглядят для гита как независимые изменения файлов. Если пихуль может отследить факт попадания отдельных патчей из одной ветки в другую, ему полегче будет.

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

Что плохого в C? Что плохого в shell?

Если вы в криокамере, и у вас до сих пор 80-е, - то всё просто отлично.

Если исключить вкусовщину, то основаная проблема в том, что на винде git чужероден чуть менее чем полностью. Ещё и работает раз 5 медленнее. И всё из-за мешанины C/bash/perl/coreutils.

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

Там не только реактор, в токио сигналы, сокеты, таймеры, ивент лупы, и прочее. И вот оно там зелр сложное.

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

Ещё можно вспомнить, что git и libgit - отдельные реализации (или уже слили?), что вообще прикол.

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

Если исключить вкусовщину, то основаная проблема в том, что на винде git чужероден чуть менее чем полностью. Ещё и работает раз 5 медленнее. И всё из-за мешанины C/bash/perl/coreutils.

Вендузятнеги могут написать свой клиент. Остальные пруцца.

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

Вендузятнеги могут написать свой клиент.

То есть вы согласны, что текущая реализация не шибко хорошая?

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

То есть вы согласны, что текущая реализация не шибко хорошая?

Для венды? Да, пожалуй. Хотя бы тем, что она консольная.

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

винде git чужероден чуть менее чем полностью

мышководам чужеродно все, что нельзя сделать мышом by design

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

Проблема не в том, что он консольный, а в том, что он сильно завязан на unix/linux.

Ну это за редким исключением синонимы.

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

пока что делать что-то новое в системах контроля версий потому что svn реально решает проблему даже глубже чем надо

fixed

PS: луддиты не нужны

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