Re: "git gc" doesn't seem to remove loose objects any more
- From
Johan Herland <johan@herland.net>
- Date
- Dec 15, 2008, 16:59 UTC
- Message-ID
- <200812151759.44420.johan@herland.net>
- In-Reply-To
- <20081215161212.GE31145@sirena.org.uk>
On Monday 15 December 2008, Mark Brown wrote:
Show 19 quoted lines
> On Mon, Dec 15, 2008 at 10:56:10AM -0500, Theodore Tso wrote: > > On Mon, Dec 15, 2008 at 03:08:34PM +0100, Bj?rn Steinbrink wrote: > > > To clarify that a bit more: git gc keeps unreachable objects > > > unpacked, so that git prune can drop them. And git gc invokes git > > > prune so that only unreachable objects older than 2 weeks are > > > dropped. > > > > To be even more explicit, "git gc" will **unpack** objects that > > have become unreachable and were currently in packs. As a result, > > the amount of disk space used by a git repository can actually go > > **up** dramatically after a "git gc" operation, which could be > > surprising for someone who is running close to full on their > > filesystem, deletes a number of branches from a tracking > > repository, and then does a "git gc" may get a very unpleasant > > surprise. > > It can also cause things like the "please repack" warning in git gui > to go off. This is especially unhelpful since they tend to tell you > to go and do a gc to resolve the problem.
Instead of exploding all unreachable objects into loose objects, does it make sense to repack them into a separate pack? AFAICS, that would solve both the disk usage problem and the git-gui-"please repack" problem. Also, it might make git-prune's job much easier, since unreachable objects are now located in a single pack only?
Have fun!
...Johan
-- Johan Herland, <johan@herland.net> www.herland.net