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@xxxxxxxx> wrote: > 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 -- 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