4 ms·
Git's patching functionality is pretty awful in actual practice. For example, try building a git patch that applies a standard set of patches between two diverg
by AlotOfReading 6mo ago
Git's patching functionality is pretty awful in actual practice. For example, try building a git patch that applies a standard set of patches between two divergent (vendored) kernel trees. It's usually a mess.
It's also pretty easy to find a set of patches that have to be applied in order. Then someone copies those patches onto another divergent tree, which has it's own set of custom patches without renaming. This is dangerous in git and probably sensible in pijul.
Haven't use pijul in practice, but it's not hard to imagine being better than git here.
- EnPissant 6mo agoI think patching/cherry-picking is just inherently complicated and needs intelligence applied. I don't think Pijul is going to be any better here.
- WolfeReader 6mo agoCherry picking is just convenience for something that anyone could do manually. If it didn't exist in the VCS, people would do it anyway and make tools to do it. Fossil's implementation is the best, since a cherry-picked commit always points back to its origin.
- riffraff 6mo agoI remember working with darcs 20 years ago (pijul should be on that lineage) and cherry picking in that was way better than doing it with git since it meant "get this change and all the required ones" rather than "pick this commit". It still required intelligence (changes across files may not be tracked as dependent but actually are) but it was a different experience from what git provides.
- EnPissant 6mo agoIf you really wanted, you could implement this on top of a snapshot based system by mixing in git blame information (or an algorithm that is similar). It's not hard to compute that text based dependency graph on the fly, though maybe expensive without caching.
- Guvante 6mo agoThat is kind of the point of Pijul, first class support for "how do I combine these" which git mostly discards as unimportant. But for a lot of work at scale (or people) mixing bits is important.