4 ms·
It would be certainly be possible to reimplement git using only patches, showing that Pijul cannot be worse than git. However, it would not be possible to impl
by pmeunier 10y ago
It would be certainly be possible to reimplement git using only patches, showing that Pijul cannot be worse than git.
However, it would not be possible to implement a patch-based system (Pijul/darcs) based on git.
- One example is cherry-picking: in git, when you are on some branch A, and cherry-pick from another branch B, after the cherry-picking is done, if you try to cherry-pick from B again, you'll get conflicts. In Pijul and darcs, that comes for free.
- Another example is merge: merge between commits is provably wrong (https://tahoe-lafs.org/~zooko/badmerge/simple.html https://tahoe-lafs.org/~zooko/badmerge/simple.html). With patches, this cannot happen.
- Crespyl 10y agoThanks for that link, that finally helped me understand the real benefit of the patch model, this quote in particular: > The difference between what svn does and what darcs does here is, contrary to popular belief, not that darcs makes a better or luckier guess as to where the line from c1 should go, but that darcs uses information that svn does not use -- namely the information contained in b1 -- to learn that the location has moved and precisely to where it has moved. Darcs/Pijul understand which lines a patch is interested in, and if those lines get moved around in another branch, the patch "follows" them to the right place, rather than just finding/applying the shortest possible diff.