LINUX.ORG.RU

Pijul 0.3

 , , ,


5

3

Состоялся первый публичный релиз системы управления версиями Pijul 0.3, написанной на языке программирования Rust. Pijul объединяет в себе производительность git и простоту использования darcs. Основанная на модели теории патчей, система Pijul направлена на то, чтобы сделать операции слияния и забора определенных коммитов (cherry-pick) более интуитивным.

Pijul можно установить при помощи Cargo (пакетного менеджера для Rust): команда cargo install pijul соберёт самую последнюю версию. Минимальная для сборки версия Rust — 1.15.1.

Примеры использования:

$ mkdir my_project
$ cd my_project
$ pijul init # создание нового пустого репозитория
$ echo " [ ] save the world" > todo.md # редактируем файл
$ pijul add todo.md # добавить todo.md: pijul начнёт отслеживать
                    # изменения в этом файле
$ pijul record # равнозначно 'git commit -p'
added file /home/florent/code/pijul/pijul/pijul/tuto/todo.md
Shall I record this change? [ynkad] y
+  [ ] save the world
Shall I record this change? [ynkad] y
What is your name <and email address>? Jean Doe <jean@example.org>
What is the name of this patch? Lest I forget
Recorded patch AeNEKi1-S60Pe_Hy__lbsyyKIrnkFvDBC-AOG4uUf0KxRG6v2pqwv…

Пример создания клона и внесения изменений; на этот раз команда record используется с ключом -a для сохранения всех изменений в отслеживаемых файлах. pijul record -m <сообщение> добавляет сопутствующее сообщение без необходимости открывания редактора, --author позволяет указать авторство, только для этого случая.

$ cd ..
$ pijul clone my_project clone_of_my_project
$ cd clone_of_my_project
$ echo " [ ] save the world, starting with the koalas" > todo.md
$ pijul record -am "Think of the koalas" --author koala_lover@example.au
Recorded patch ATqiYHQE528y0irRT4Oh0HEGbsR9e8J-7VMqUljUvsmduIcBU1YGdN_Abg…

Возвращаемся в исходный репозиторий и мерждим изменения:

$ cd ../my_project
$ pijul pull ../clone_of_my_project
Hash: ATqiYHQE528y0irRT4Oh0HEGbsR9e8J-7VMqUljUvsmduIcBU1YGdN_AbgpWZ7eaj-1q3dOA2OU5YYA1t1DY_T8
Authors: ["koala_lover@example.au"]
Timestamp 2017-03-16 16:50:49.059851279 UTC
  * Think of the koalas
Shall I pull this patch? [ynkad] y
 
$ cat todo.md 
 [ ] save the world, starting with the koalas

Pijul — пока очень молодой проект: разработчики сами только начали его использовать для разработки самого проекта Pijul.

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

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

★★★★★

Проверено: Shaman007 ()
Ответ на: комментарий от Pinkbyte

Про тот факт что в git можно достать ЧАСТИЧНЫЙ diff чтобы его закоммитить, не тронув другие изменения в файле(хотя вот эта фича - воистину наркоманская!) - я промолчу

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

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

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

Догадаешься как в итоге был сделан мерж?

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

Ты от гита видимо странного хочешь. Я за последние 6 лет один раз потерял что-то с гитом и то из-за того, что не знал, что блок с гитовыми метаданными посыпался, а я rebase делать начал.

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

Если ты делаешь push --force - то кроме считанных случаев ты делаешь что-то сильно не так.

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

Если ты переписываешь историю кроме случая ребейза на текущий master/devel в feature-branch c сквошем промежуточных коммитов - то тебе надо бить по рукам чугунной батареей.

Следуя этим нехитрым правилам потерять что-то в репозитории становится сложнее.

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

Расскажи, что именно тебе в hg негибко.

В hg многие вещи делаются только через экстеншны

И что?

Костыли.

Ну-ну. Выбрось ядро своей ОС - оно стоит исключительно на костылях-драйверах.

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

Выбрось ядро своей ОС - оно стоит исключительно на костылях-драйверах.

Мой аргумент был не в наличии экстеншнов в hg, а в идеологии hg, которая заставляет костылить эти самые экстеншны по примеру git. Что как-бы намекает.

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

в идеологии hg, которая заставляет костылить эти самые экстеншны по примеру git

Причем здесь идеология hg? Git распространяет свою идеологию, людям она почему-то нравится - окей, вот вам bookmarks вместо нормальных веток.

И кстати, с каких «примеров git» «скостылены» revsets? evolve? Даже mq?

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

И кстати, с каких «примеров git» «скостылены» revsets? evolve? Даже mq?

mq - git rebase -i

evolve - по сути тот же MQ, но с git reflog.

А вот revsets интересная штука, да, в git есть разве что флаги модификаторы, типа:

git log 1.3...1.5 --grep=«bug» --not master

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

И кстати, с каких «примеров git» «скостылены» revsets? evolve? Даже mq?

mq - git rebase -i

Ясно. Просто для протокола: mq - это pck и quilt. Прикинь, не всё в управлении версий изобретено git (на самом деле, там изобретено довольно мало).

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

Что ни тред про контроль версий, так....

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

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

Ты от гита видимо странного хочешь

Возможно. Я не говорю, что Git — это плохо. Или что мой юзкейс — образцовый. Я просто отвечаю, почему лично я предпочитаю Mercurial :)

KRoN73 ★★★★★ ()

Pijul 0.3

Проект назван в честь ани — вида южноамериканских птиц

Ани

Smooth-billed ani

Crotophaga ani

Объясните безграмотному, почему в честь ани проект называется пихулем?

Psych218 ★★★★★ ()