Hello everybody,

I encountered strange git behaviour which I want to share with your all, so 
this is half bug-report / half workaround

Basically what happens is git (msysgit in particular, but see below) 
freezes for several minutes on simple commands like this:

*git fetch origin refs/changes/25/31125/4  - 2m35s*

Git protocol, no ssh in progress.

If do so in freshly cloned repo - time is 3-4 seconds.

I tried 
*git reflog expire --expire=all --all && git gc --prune=now --aggressive*
it improved situation, but not drastically - *1m39sec*

If copy same repo on linux - it faster (~40 sec), but still slower than in 
newly cloned repo

By carefully investigating the issue I was able to find (kind of) source of 
slowness - quite a bit of *.idx files in .git/objects/pack/*.idx *without 
*corresponding 
*.pack file 
Indeed 
*git count-objects -v*
reports 245 garbage objects (with names in stderr)

If remove this objects manually by
*git count-objects -v 2>&1 1>NUL | sed 's/.\+: //g' | xargs rm -rvf  
*(s/NUL/\/dev\/null/ 
on linux)
I have excellent 3-4 sec as expected (and equal to time to fetch in freshly 
cloned repo)

So, I solved *my *issue, but there are still open questions:

   1. (most important one) Why this garbage *.idx are causing such 
   slowness? In my understanding, it should not interfere at all (because it's 
   garbage)
   2. Shouldn't '*git gc*' remove this garbage itself? Especially 
   considering the fact, that it '*git count-objects*' already accounts for 
   it.
   3. What causing this garbage to appear in the first place? Is it normal 
   to have such many garbage files? (although this might be msysgit (i.e. not 
   git) issue)

-- 
You received this message because you are subscribed to the Google Groups "Git 
for human beings" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to git-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to