Search code examples
gitbackground-processpacking

Why does git keep telling me it's "Auto packing the repository in background for optimum performance"?


Note: I don't think this is a duplicate of this question, which is talking about a non-background pack which hangs git with a subtly different error message.


In one of my git repositories, each time I invoke (for example) git fetch, git prints:

Auto packing the repository in background for optimum performance.
See "git help gc" for manual housekeeping.

It appears to print this every time if I do a git fetch repeatedly, even when there are no changes and nothing for git fetch to do. This doesn't make a lot of sense to me. It also seems to happen with other network operations, such as git push and git pull.

The command returns back to the prompt instantly with no further output, and I cannot find any git process running on my machine. It seems to happen only with this repository, and only on this machine. git config -l | grep gc returns nothing.

What can I do to diagnose or fix this problem?

$ git --version 
git version 2.0.1

I am using OS X 10.9.


Solution

  • I found the solution from the second comment you provided, Trengot, thanks. It turns out that I had some dangling blobs, which were in .git/objects/17 and hence triggering the packing:

    $ git fsck
    dangling blob d9ff0aeac4aa8b4e0907daed675ebf60278bc977
    dangling blob dbff2d073741f9775c815d4a3c623736af224dad
    dangling blob e1ffbab1c5b985cd1cd3bc0281075ea2ed80744a
    dangling blob fdff59878ccb3a75689f4acca615cfb635288774
    

    This cleaned them up:

    $ git gc --prune=now
    

    Be aware, as per Henrik's comment below, this may be a little dangerous. Take care!