> The diff algorithms are all fast but dumb. Patch based VCS systems (Darcs, Pijul) are apparently better here.
Isnt one of git's core features that it can work as a patch based system?
It's my understanding (and please correct me if I'm wrong) that Linux patches can come in via mailing list, as a diff. That would make the person committing different from the owner of the change (also reflected in git's design)? Do Darcs and Pijul just have a string of patches on top of the original source file?
Got can apply patches, yes. But I mean when it has two commits (which are snapshots, not patches) and it uses a diff algorithm to synthesise a patch between them.
It uses an algorithm which is great from a computer science point of view (low algorithmic complexity, minimal length, etc.) but pretty bad from a semantic point of view (splitting up blocks, etc.).
There are a couple of attempts to improve this (DiffSitter, Difftastic) but they don't integrate with GUIs yet.
Isnt one of git's core features that it can work as a patch based system?
It's my understanding (and please correct me if I'm wrong) that Linux patches can come in via mailing list, as a diff. That would make the person committing different from the owner of the change (also reflected in git's design)? Do Darcs and Pijul just have a string of patches on top of the original source file?