From: Jason Pyeron Date: Wed, 29 Jul 2020 01:09:35 GMT Subject: RE: I have gone and done a bad thing - malformed tree objects Message-ID: <19cab01d66544$ecb402d0$c61c0870$@pdinc.us> In-Reply-To: > From: Junio C Hamano > Sent: Tuesday, July 28, 2020 8:52 PM > > "Jason Pyeron" writes: > > > I was trying to "do stuff" using hash-object -t tree --stdin -w, > > but I accidentally created trees where other trees were marked as > > blobs. They were dangling and not connected to any actual commits > > on my branches. > > > > After gc and fsck clean ups, everything reports well... > > > > Except: > > > > $ GIT_TRACE=1 git cat-file --batch-all-objects --batch=objecttype > > gc and fsck may not have pruned the dangling object yet, but > --batch-all-objects is a request to enumerate objects that exist in > the repository, regardless of their reachability from any ref. > > Perhaps "git prune --expire=now" would get rid of it? Both that and git -c gc.reflogExpire=now -c gc.reflogExpireUnreachable=now -c gc.rerereresolved=now -c gc.rerereunresolved=now -c gc.pruneExpire=now -c gc.worktreePruneExpire=now gc --prune=now --aggressive leave it in.