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)
Ответ на: комментарий от slovazap

rust тише воды ниже травы пилится без всякого хайпа где-то у себя вы уголке

Не, ну точно норкоман.

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

Взять pijul, у которого нет такой проблемы?

Ты мне для начала расскажи, какие у тебя с Git'ом проблемы. А то я так и не понял, чем тебя rebase не устроил.

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

Не понимаю, с чего тут решили, что «Пихуль» - это неблагозвучно. Как раз очень по-русски звучит - он же пихает код в репозиторий, хуль.
Если уж на то пошло, «git» на английском - куда более неблагозвучное название (см. «old git» и т.п.). Но никто не парится. А тут какие-то комплексы.

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

Мой небольшой опыт подсказывает, что в этом случае Git и SVN предложат пользователю разрулить конфликт вручную.

Проверил с git — не предлагает.

Кстати, примерно поэтому я и люблю ребейзить, а не мёрджить. git rebase c1 (когда мы сидим в b2) делает то, что от него ждёшь.

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

Ты мне для начала расскажи, какие у тебя с Git'ом проблемы.

К сожалению, я не сохраняю случаи, когда проще снести ветку и создать заново чем сделать rebase -i. Хотя такое происходит совсем не редко.
Пара других примеров есть в https://jneem.github.io/pijul/. То, что в пихуле делается просто, в гите — боль и конфликты.

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

Реально странная. Убийца Git из нее такой же, как из Сlojure убийца Java или из NixOS убийца Debian. Я раскуривал по https://jneem.github.io/pijul

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

Реальности, в которой файлы - орграфы строк и отношения следования, а деревья коммитов - недетерминированные леса всех возможных историй. Реальности ФП-наркоманов, короче.

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

К сожалению, я не сохраняю случаи, когда проще снести ветку и создать заново чем сделать rebase -i. Хотя такое происходит совсем не редко.

У меня такого не было ни разу.

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

Похоже таки да. Единственное реально важное отличие.

Github не является свободным проектом, а теперь ещё и M$, что совершенно не мешает миллионам мух пользоваться git.

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

К сожалению, я не сохраняю случаи, когда проще снести ветку и создать заново чем сделать rebase -i. Хотя такое происходит совсем не редко.

то, что ты не понимаешь, как нужно слить кодом, не означает, что эта приблуда сможет сделать это корректно.

Пара других примеров есть в https://jneem.github.io/pijul/. То, что в пихуле делается просто, в гите — боль и конфликты.

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

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

Типизированные шаблоны, бьющие по рукам за пропущенный </div>, а?

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

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

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

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

Плюсую. Более того, когда я в кафе или в маршрутке разговариваю на испанском (в России), симпатичные девушки мне чаще комплименты делают и глазки строят, чем когда разговариваю на русском или английском :)

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

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

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

Все эти теги в jsx - прошлый век, даже в реакт крупные компании прикручивают шаблонизаторы, т.к. замучаешься писать этот jsx с его ограничениями, а в опенсорсе рулит vue с pug/jade, где не надо ничего закрывать и возиться с emmet.

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

Git «под капотом» нифига не простой. До минимальной юзабельности его доводили год-два. Причем всем миром.

Как-то пользовали в 2008 гит на замену свн и не жаловались

За три года его довели до какой-никакой юзабельности.

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

Если нет сборщика мусора - значит его руками собирает программист. А это то ещё извращение, это потенциальные ошибки, утечки, за исключением очень специфичных мест..

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

pug/jade

python делает это с незапамятных времен. никаких тебе открывающих/закрывающих маркеров. все и так видно, если кодер не дурак, конечно. хотя, дураков в нашей профессии хватает.

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

Python-это бекенд, я про фронт, на фронт идет json, а из него, силами v8 рендерится dom и реактивно обновляется, в 2018.

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

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

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

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

Чем оно лучше git?

А что, могут быть DVCS хуже git'а? :)

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

Ты мне для начала расскажи, какие у тебя с Git'ом проблемы.

Конфликты на ровном месте. 100500 вариантов сделать одно и то же действие, и все неправильные.

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

Все эти теги в jsx - прошлый век

а в опенсорсе рулит vue с pug/jade

Пока энтерпрайх мучается, вручную формируя VDOM-дерево и вешая события, успешные опенсорс-гуру пишут vue-шаблон, который компилятор превращает в рендер-функцию, обильно сдобренную обзёрверами, отжирающими гигабайты памяти

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

Если нет сборщика мусора - значит его руками собирает программист. А это то ещё извращение, это потенциальные ошибки, утечки, за исключением очень специфичных мест..

Да, не боись. Не так страшно. Ну, умные указатели чаще встречаются в коде, а так вполне нормально. В rust сделано по уму. Ты знаком с языком?

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

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

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

Большей части населения земли насрать что оно не благозвучно звучит на русском.

Большая часть населения земли - неграмотные идиоты, а разработчики ПО относят себя к грамотным, стало быть могли бы и напрячь извилину. А вам рекомендую попробую вообразить в уме, как вы предлагает своему руководителю процесс перевода вашего офиса с венды на ОС «Пидора». Можете даже привести аргументы, что весь мир срал на русских, еще смешнее будет звучать. «Иван Иваныч, нужен закупить 10 дистрибутивов Пидоры и Пихуля». Угу.

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

Можно статически гарантировать, на уровне системы типов, что утечек не будет

...но Rust этого не гарантирует :)

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

Нет, там третий вариант. Мусор собирает не сборщик мусора в рантайме, не программист руками. Мусор собирает компилятор и бинарник содержит код, в котором в идеально правильных местах расставлены вызовы free, как будто это сделал программист, который никогда не ошибается

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

...сказал человек с ником, на финском означающим «ленточный гельминт».

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

А, как по-твоему, нужно писать пайпы на C или перебирать байты на шелле?

А как обходятся в Mercurial без пайпов? Локти кусают и поглядывают с завистью на Git?

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

Большая часть населения земли - неграмотные идиоты, а разработчики ПО относят себя к грамотным, стало быть могли бы и напрячь извилину. А вам рекомендую попробую вообразить в уме, как вы предлагает своему руководителю процесс перевода вашего офиса с венды на ОС «Пидора». Можете даже привести аргументы, что весь мир срал на русских, еще смешнее будет звучать. «Иван Иваныч, нужен закупить 10 дистрибутивов Пидоры и Пихуля». Угу.

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

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

Третий вариант, но не такой радужный, как ты описал. Вместо сборщика мусора, програмисту приходится доходчиво объснять компилятору происхождение и срок годности каждой нелокальной переменной. Объяснять при помощи странного синтаксиса и нетривиальных правил

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

Третий вариант, но не такой радужный, как ты описал. Вместо сборщика мусора, програмисту приходится доходчиво объснять компилятору происхождение и срок годности каждой нелокальной переменной.

Да норм, зато у тебя нет лавинообразной проблемы с памятью.

Объяснять при помощи странного синтаксиса и нетривиальных правил

Правила, кстати, довольно трвивиальны. Не сложнее работы памяти в C и уж точно не сложнее всех corner-case в плюсах.

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

Вот пихуль и предложил же. Осталось лишь немного подождать пока он станет наконец юзабельным.

«Он наступит очень скоро, надо только подождать.»

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

И что в синтаксисе c++98 сильно странного?

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

Все эти теги в jsx - прошлый век

По-моему, в этом вашем джаваскрипте такого понятия, как «прошлый век», не муществует. Максимум — вчерашний день. Однако, не может быть, чтобы то, от чего недавно писали кипятком, совсем было бесполезно. Даже у JS'еров.

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

Примеры чего? Я ежедневно работаю с git, и как только веток становится больше одной - конфликты постоянные. Даже там, где их быть не должно.

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

Большая часть населения земли - неграмотные идиоты

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

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

У нас на работе есть выбор Винда или MacOS, причём с админом и начальником можно говорить или на английском или на испанском. Им будет без разницы, ОС может называться «Pidora» без проблем. Более того, вместе со мной работает чувак с фамилией Gay, и что-то я не слышал шуток по этому поводу.

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

Гм, звучит вполне как мой вариант, надо сказать.

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

Первая версия системы, которую мы разрабатываем, называлась ganja.

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

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

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