Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
[dupe] Pijul: distributed version control system based on a sound theory of patches (pijul.org)
69 points by ingve on Dec 11, 2018 | hide | past | favorite | 13 comments


The main question I had was why I should leave git in favor of pijul. I had to do a bit of digging to find the following, which does a good job showcasing how patch-based solutions are better at handling merges.

https://tahoe-lafs.org/~zooko/badmerge/concrete-good-semanti...


Previously posted a few times. These two seem to have the most discussion going:

https://news.ycombinator.com/item?id=13643025 https://news.ycombinator.com/item?id=18235798


It's very interesting, but it really lacks a good explanation of this theory of patches, even in the documentation. I'm guessing a careful read-through will reveal many insights, however.

It's a bit annoying when it's being sold as being so simple and intuitive, to not be able to find an explanation that makes you understand the thing completely.


I think this explains the “theory of patches”:

https://jneem.github.io/merging/


Thanks! I'll check it out.


> Pijul is bootstrapped, meaning that we use it for its own development. See its repository there: https://nest.pijul.com/pijul_org/pijul

Seems like the server can not handle the HN load? Unaccessible for me at least.


I have used Darcs for years and absolutely loved it's user friendlyness. Theory of patches makes for some elegant use cases. I'll have to give Pijul a try! Only downside of Darcs was it's performance in some edge conditions. Pijul looks like it's built on an improved version of the theory.


Wish they'd link to what a theory of patches is, but it looks like the same one which darcs: http://darcs.net/ used. Except they tried to keep all the algorithm runtime to O(ln h) with h being length of history.


> Benefits

> Implicit branching

> In Pijul, the state of a repository is exactly the (non-ordered) set of patches that were applied to it since its creation.

I'd love to learn more about how non-ordered patches work here. Surely they aren't actually not ordered, but more implicitly ordered based on what they're changing from and to?


The main page seems to be missing a good description of how the packages work. If one follows the links a bit there is one here:

https://jneem.github.io/merging/


Very keen to try it out, but just running the windows .exe does not work. Also adding the dll does not help. I guess they want to limit their users to real experts till now. Really a pity.


Is there a TL;DR version of their "theory of patches" ?


Click the link, then click "read more". It'll be on the top of the page after that.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: