On Mon, 11 Jun 2012 14:34:14 -0400, Jeff King <peff@xxxxxxxx> wrote:
On Mon, Jun 11, 2012 at 01:27:32PM -0400, Ted Ts'o wrote:
So depending on how you would want to do the comparison, probably
the
fairest thing to say is that I had a total "good" packs totally
about
16 megs, and the loose cruft objects was an additional 4.5
megabytes.
OK, so that 4.5 is at least a respectable percentage of the total
repo
size. I suspect it may be worse for small repos in that sense, (...)
'git gc' gave a 3100% increase with my example:
$ git clone --bare --branch linux-overhaul-20010122 \
git://git.savannah.gnu.org/config.git
$ cd config.git/
$ git tag -d `git tag`; git branch -D master
$ du -s objects
624 objects
$ git gc
$ du -s objects
19840 objects
Basically: Clone/fetch a repo, keep a small part of it, drop the
rest, and gc. Gc explodes all the objects you no longer want.
This hits you hard if your small project tracks a big one, and
later ceases doing so. Maybe your project is to convert a small
part of the remote into a library, or you're just tracking a few
files from the remote - e.g. from the GNU Config repo.
Not something one does every day, but it does happen.
Tweaks to expiration time etc do not help here.
Hallvard
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html