Wow, thanks for your detailed response, Thomas.  I'll try to answer
some of your questions:

Both repositories are on a remote mounted filesystem.  Several people
have told me that defeats the purpose of using git, but I claim
innocence by virtue of inheriting the system as it is.  :-)  Also, I
doubt that's a factor anyway since the fast repository is perfectly
fast on that same filesystem.  That seems to rule out any filesystem
related issues such as fragmentation too.

The files in the slow repository are mostly text (.html .css etc.)
files.  There are .gif .png and other such files sprinkled in.  By far
the biggest directory in the repository has 32509 regular files with
2208 that don't have obvious text suffixes.  A few of those 2208 are
probably also text files, but with suffixes I don't recognize.  So,
the repository certainly isn't dominated by binary files.  There are
currently 26 directories in all.  Most of them have a few hundred
files in them.

Maybe a little more background might help.  Changes are made to a
given directory (new files, updated files, deleted files) throughout
the day.  Every night a cron job runs which does a "git add ." and
"git commit" in that directory.  Later a PHP program runs via a
browser that looks at the git repository and shows all the pertinent
changes.  Depending on the URL, the script can say, "Give me the names
of all files in the repository changed since the beginning of time,"
but it usually says, "Give me the names of all files in the repository
changed between two given timestamps."  It's the "give me all changed
files since the beginning of time" that is vexing me.  It's super fast
for the larger repository and slow for the other one.  So the system
is interested in things at the file level rather than the commit level
since a mass commit is done once a day.

I'm running git version on an RHEL system.

I've run git gc in the past and it has no effect.

Is there a way to run git that might reveal where it's spending all
it's time?

git log is super speedy.  Is there a good way to use that to get all
the files changed between two times?

You received this message because you are subscribed to the Google Groups "Git 
for human beings" group.
To post to this group, send email to
To unsubscribe from this group, send email to
For more options, visit this group at

Reply via email to