Re: Long clone time after "done."
- From
- Uri Moszkowicz <uri@4refs.com>
- Date
- Nov 8, 2012, 22:16 UTC
- Message-ID
- <CAMJd5ATX5Ru9Orp2t3p39q7tsNRfGjqDYGnf4-9QYNSTpQ-YuA@mail.gmail.com>
- In-Reply-To
- <20121108221128.GA11186@sigill.intra.peff.net>
I ran "git cat-file commit some-tag" for every tag. They seem to be roughly uniformly distributed between 0s and 2s and about 2/3 of the time seems to be system. My disk is mounted over NFS so I tried on the local disk and it didn't make a difference.
I have only one 1.97GB pack. I ran "git gc --aggressive" before.
On Thu, Nov 8, 2012 at 4:11 PM, Jeff King <peff@peff.net> wrote:
Show 30 quoted lines
> On Thu, Nov 08, 2012 at 03:49:32PM -0600, Uri Moszkowicz wrote: > >> I'm using RHEL4. Looks like perf is only available with RHEL6. > > Yeah, RHEL4 is pretty ancient; I think it predates the invention of > "perf". > >> heads: 308 >> tags: 9614 >> >> Looking up the tags that way took a very long time by the way. "git >> tag | wc -l" was much quicker. I've already pruned a lot of tags to >> get to this number as well. The original repository had ~37k tags >> since we used to tag every commit with CVS. > > Hmm. I think for-each-ref will actually open the tag objects, but "git > tag" will not. That would imply that reading the refs is fast, but > opening objects is slow. I wonder why. > > How many packs do you have in .git/objects/pack of the repository? > >> All my tags are packed so cat-file doesn't work: >> fatal: git cat-file refs/tags/some-tag: bad file > > The packing shouldn't matter. The point of the command is to look up the > refs/tags/some-tag ref (in packed-refs or in the filesystem), and then > open and write the pointed-to object to stdout. If that is not working, > then there is something seriously wrong going on. > > -Peff