Hacker News new | ask | show | jobs
by aayjaychan 2080 days ago
Git does hide the old commits as well. What git doesn't do is track which commits are replaced by which. So sharing mutable history and seeing how a commit evolved over time requires more heuristic than necessary.
1 comments

I was under the impression that those individual commits eventually get lost (i.e. may be in the reflog or not sent to the server, etc).

With Mercurial's evolve, the hidden commits are always there. When you push/clone, etc they get sent around.

Yes, unreachable commits in Git are GC'd eventually, but you can disable it.

In Mercurial, hidden changesets are kept locally indefinitely, but they are not exchanged; only their obsolescence makers are. So you always know the meta-history of a changeset, but not necessarily their original content.