Subject: "git clone --depth=2 git://git.sv.gnu.org/gnulib" hangs

From: Jim Meyering <[email-masked]>
Date: Mon, 25 Apr 2011 22:28:10 +0200

Hello,

We've had a report that this command is hanging:

    git clone --depth=2 git://git.sv.gnu.org/gnulib

cloning without --depth=N works, as well as when using an ssh:// URL,
but most people can use ssh:// URLs.

Normally it wouldn't be much of a problem, but many projects
use gnulib as a submodule, and one of the recommended (scripted)
ways to get a copy is via a shallow clone.

savannah's server is running git-1.7.2.5.
I've confirmed it using these client versions:

    1.7.5.rc3.316.gd1ff9
    1.7.4.4

GIT_TRACE didn't give much info:

    xx$ GIT_TRACE=1 git clone --depth 2 git://git.sv.gnu.org/gnulib
    trace: built-in: git 'clone' '--depth' '2' 'git://git.sv.gnu.org/gnulib'
    Cloning into gnulib...
    trace: run_command: 'index-pack' '--stdin' '-v' '--fix-thin' \
      '--keep=fetch-pack 645 on xx.meyering.net'
    trace: exec: 'git' 'index-pack' '--stdin' '-v' '--fix-thin' \
      '--keep=fetch-pack 645 on xx.meyering.net'
    trace: built-in: git 'index-pack' '--stdin' '-v' '--fix-thin' \
      '--keep=fetch-pack 645 on xx.meyering.net'

It appears to be something specific to the gnulib repository,
since I can do a shallow clone of e.g., this one just fine:

    git://git.savannah.gnu.org/parallel.git

Any hints?

At worst I'll set up a git server on a private system and debug it --
eventually.

Regards,

Jim