git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Large number of object files
@ 2012-10-24  5:21 Uri Moszkowicz
  2012-10-24  6:59 ` Nguyen Thai Ngoc Duy
  0 siblings, 1 reply; 3+ messages in thread
From: Uri Moszkowicz @ 2012-10-24  5:21 UTC (permalink / raw)
  To: git

Continuing to work on improving clone times, using "git gc
--aggressive" has resulted in a large number of tags combining into a
single file but now I have a large number of files in the objects
directory - 131k for a ~2.7GB repository. Any way to reduce the number
of these files to speed up clones?

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Large number of object files
  2012-10-24  5:21 Large number of object files Uri Moszkowicz
@ 2012-10-24  6:59 ` Nguyen Thai Ngoc Duy
  2012-10-24  7:11   ` Jeff King
  0 siblings, 1 reply; 3+ messages in thread
From: Nguyen Thai Ngoc Duy @ 2012-10-24  6:59 UTC (permalink / raw)
  To: Uri Moszkowicz; +Cc: git

On Wed, Oct 24, 2012 at 12:21 PM, Uri Moszkowicz <uri@4refs.com> wrote:
> Continuing to work on improving clone times, using "git gc
> --aggressive" has resulted in a large number of tags combining into a
> single file but now I have a large number of files in the objects
> directory - 131k for a ~2.7GB repository.

Can you paste "git count-objects -v"? I'm curious why gc keeps so many
loose objects around.

> Any way to reduce the number of these files to speed up clones?

An easy way to get rid of them is to clone the non-local way.
Everything will be sent over a pack, the result would be a single pack
in new repo. Try "git clone file:///path/to/source/repo new-repo". You
can also try "git prune" on the existing repo (read its man page
before use).
-- 
Duy

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Large number of object files
  2012-10-24  6:59 ` Nguyen Thai Ngoc Duy
@ 2012-10-24  7:11   ` Jeff King
  0 siblings, 0 replies; 3+ messages in thread
From: Jeff King @ 2012-10-24  7:11 UTC (permalink / raw)
  To: Nguyen Thai Ngoc Duy; +Cc: Uri Moszkowicz, git

On Wed, Oct 24, 2012 at 01:59:16PM +0700, Nguyen Thai Ngoc Duy wrote:

> On Wed, Oct 24, 2012 at 12:21 PM, Uri Moszkowicz <uri@4refs.com> wrote:
> > Continuing to work on improving clone times, using "git gc
> > --aggressive" has resulted in a large number of tags combining into a
> > single file but now I have a large number of files in the objects
> > directory - 131k for a ~2.7GB repository.
> 
> Can you paste "git count-objects -v"? I'm curious why gc keeps so many
> loose objects around.

Presumably ejected from the pack because they are now unreachable.
That's a rather large number, but if there was recent ref maintenance
(e.g., deleting branches or tags), it is not impossible.

> > Any way to reduce the number of these files to speed up clones?
> 
> An easy way to get rid of them is to clone the non-local way.
> Everything will be sent over a pack, the result would be a single pack
> in new repo. Try "git clone file:///path/to/source/repo new-repo".

If you have git v1.7.12 or greater, you can also use the "--no-local"
option to clone. But as you mentioned, pruning is probably the most
sensible thing (and for a non-local clone, those objects should not
impact performance at all, as we will never even look at unreferenced
objects).

-Peff

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-10-24  7:11 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-10-24  5:21 Large number of object files Uri Moszkowicz
2012-10-24  6:59 ` Nguyen Thai Ngoc Duy
2012-10-24  7:11   ` Jeff King

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).