Re: gc and repack ignore .git/*HEAD when checking reachability
- From
Theodore Ts'o <tytso@mit.edu>
- Date
- Jul 8, 2016, 23:50 UTC
- Message-ID
- <20160708235053.GA26097@thunk.org>
- In-Reply-To
- <CAPc5daWDi1P-xFaEYf1zzz7m3g9wengQPjRzxhgu6jVM9AKtyQ@mail.gmail.com>
On Fri, Jul 08, 2016 at 01:30:06PM -0700, Junio C Hamano wrote:
Show 5 quoted lines
> > I can imagine I'd start hacking on a project that I rarely touch, give up > resolving a "git pull" from an unconfigured place (hence, some stuff is > only reachable from FETCH_HEAD), and after 2*N days, come back > to the repository and find that I cannot continue working on it.
Sure, but that's something that could happen today, and no one has really complained, have they?
Show 9 quoted lines
> Turning the rule to "*_HEAD we know about, and those we don't that > are young" would not change the situation, as I may be depending on > some third-party tool that uses its OWN_HEAD just like we use > FETCH_HEAD in the above example. > > So I dunno if that is a good solution. If we are going to declare that > transient stuff will now be kept, i.e. keeping them alive is no longer > end user's responsibility, then probably we should make it end user's > responsibility to clean things up.
Well, the question is what does "transient" stuff really mean? If we keep them forever, then are they really any different from stuff under refs/heads?
Maybe pester the user if there is stale *_HEAD files, but don't actually get rid of the objects?
- Ted