
Pijul: distributed version control system based on a sound theory of patches - ingve
https://pijul.org/
======
whack
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...](https://tahoe-lafs.org/~zooko/badmerge/concrete-good-
semantics.html)

------
msiebuhr
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=13643025)
[https://news.ycombinator.com/item?id=18235798](https://news.ycombinator.com/item?id=18235798)

------
norswap
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.

~~~
dan-robertson
I think this explains the “theory of patches”:

[https://jneem.github.io/merging/](https://jneem.github.io/merging/)

~~~
norswap
Thanks! I'll check it out.

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

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

------
mempko
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.

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

------
SCdF
> 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?

------
dan-robertson
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/](https://jneem.github.io/merging/)

------
bfly
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.

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

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

