4 ms·
Mercurial fixes pretty much all of these problems via changeset evolution: commits are marked as obsolete and the obsolescence marker says which commit replaces
by jordigh 3y ago
Mercurial fixes pretty much all of these problems via changeset evolution: commits are marked as obsolete and the obsolescence marker says which commit replaces the obsolete commit. So you have a meta-graph of commits as they change. You can therefore undo, you can trace the history, and since obsolete commits aren't shared by default, they slowly fade away.
https://www.mercurial-scm.org/doc/evolution/ https://www.mercurial-scm.org/doc/evolution/
It's a good idea that's been attempted to be ported into a git
https://lwn.net/Articles/914041/ https://lwn.net/Articles/914041/