From: Josh Triplett <josh@joshtriplett.org>
To: Theodore Ts'o <tytso@mit.edu>
Cc: Junio C Hamano <gitster@pobox.com>,
Git Mailing List <git@vger.kernel.org>
Subject: Re: gc and repack ignore .git/*HEAD when checking reachability
Date: Fri, 8 Jul 2016 22:23:14 -0700 [thread overview]
Message-ID: <20160709052314.GC23426@x> (raw)
In-Reply-To: <20160708235053.GA26097@thunk.org>
On Fri, Jul 08, 2016 at 07:50:53PM -0400, Theodore Ts'o wrote:
> On Fri, Jul 08, 2016 at 01:30:06PM -0700, Junio C Hamano wrote:
> >
> > 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?
Until now. :)
> > 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?
No, they're not. And I don't think they should be; HEAD itself is *not*
transient, as a detached HEAD can reference valuable non-transient
objects.
In an ideal world, HEAD and all other such refs would live somewhere
under refs, to avoid the special case.
> Maybe pester the user if there is stale *_HEAD files, but don't
> actually get rid of the objects?
Why pester at all? Just leave them, and if the user has large objects
they don't care about and wants to decrease the size of the repository,
they can follow the advice from the git-gc manpage: "If you are
expecting some objects to be collected and they aren’t, check all of
those locations and decide whether it makes sense in your case to remove
those references." (Where "those locations" will need to expand to
mention "*HEAD".)
(Also, I'd suggest "*HEAD", possibly limited to characters matching
[-_A-Z], rather than "*_HEAD".)
- Josh Triplett
next prev parent reply other threads:[~2016-07-09 5:23 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-08 2:59 gc and repack ignore .git/*HEAD when checking reachability Josh Triplett
2016-07-08 4:34 ` Junio C Hamano
2016-07-08 6:44 ` Josh Triplett
2016-07-08 17:14 ` Junio C Hamano
2016-07-08 19:25 ` Theodore Ts'o
2016-07-08 20:30 ` Junio C Hamano
2016-07-08 23:50 ` Theodore Ts'o
2016-07-09 5:23 ` Josh Triplett [this message]
2016-07-08 20:29 ` Josh Triplett
2016-07-09 7:35 ` Johannes Schindelin
2016-07-09 14:09 ` Josh Triplett
2016-07-09 16:45 ` Duy Nguyen
2016-07-10 10:59 ` Johannes Schindelin
2016-07-10 11:04 ` Duy Nguyen
2016-07-10 14:16 ` Johannes Schindelin
2016-07-10 15:01 ` Duy Nguyen
2016-07-11 6:07 ` Johannes Schindelin
2016-07-11 18:52 ` Junio C Hamano
2016-07-12 10:47 ` Johannes Schindelin
2016-07-12 15:26 ` Jeff King
2016-07-12 15:46 ` Duy Nguyen
2016-07-12 15:51 ` Jeff King
2016-07-12 16:13 ` Duy Nguyen
2016-07-13 8:20 ` Johannes Schindelin
2016-07-13 14:54 ` Duy Nguyen
2016-07-13 18:59 ` Johannes Schindelin
2016-07-15 15:46 ` Duy Nguyen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160709052314.GC23426@x \
--to=josh@joshtriplett.org \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=tytso@mit.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).