Code

Fix lost-found to show commits only referenced by reflogs
authorShawn O. Pearce <spearce@spearce.org>
Wed, 4 Apr 2007 14:46:14 +0000 (10:46 -0400)
committerJunio C Hamano <junkio@cox.net>
Thu, 5 Apr 2007 22:00:03 +0000 (15:00 -0700)
commit566842f62bdf1f16c2e94fb431445d2e6c0f3f0b
tree3c70147e9fb6cc2e8b850f32a9ecd86b8d6e6126
parentd72308e01c5977177cda0aed06cfeee9192e1247
Fix lost-found to show commits only referenced by reflogs

Prior to 1.5.0 the git-lost-found utility was useful to locate
commits that were not referenced by any ref.  These were often
amends, or resets, or tips of branches that had been deleted.
Being able to locate a 'lost' commit and recover it by creating a
new branch was a useful feature in those days.

Unfortunately 1.5.0 added the reflogs to the reachability analysis
performed by git-fsck, which means that most commits users would
consider to be lost are still reachable through a reflog.  So most
(or all!) commits are reachable, and nothing gets output from
git-lost-found.

Now git-fsck can be told to ignore reflogs during its reachability
analysis, making git-lost-found useful again to locate commits
that are no longer referenced by a ref itself, but may still be
referenced by a reflog.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
Documentation/git-fsck.txt
builtin-fsck.c
git-lost-found.sh