Ralf Baechle <ralf@xxxxxxxxxxxxxx> writes: >> Or is it just the "git-ls-remote" that takes forever? > > git-ls-remote git://www.kernel.org/pub/scm/linux/kernel/git/stable/\ > linux-2.6.16.y takes about 1.5s. Good; that is as expected. ls-remote over git protocol just gets the initial "have" lines from the upload-pack and exits, and there is no handshaking. > Another funny thing I noticed in top is that the git-fetch-pack arguments > got overwritten: > > $ cat /proc/1702/cmdline | tr '\0' ' ' > git-fetch-pack --thin git //www.kernel.org pub/scm/linux/kernel/git/stable/linux-2.6.16.y.git efs/heads/master efs/tags/v2.6.16.18 > > Guess that doesn't matter. This is also expected - fetch-pack (connect.c::path_match(), actually) smudges the list of refs to remember which ones the caller asked are going to be fulfilled and which ones are not. Not the most beautiful part of the code ;-). > Guess that doesn't matter. Anyway, so I ran strace on this git-fetch-pack > invocation: > > [...] > munmap(0xb7fe5000, 229) = 0 > getdents(5, /* 0 entries */, 4096) = 0 > close(5) = 0 > getdents(4, /* 0 entries */, 4096) = 0 > close(4) = 0 > write(3, "0046want 9b549d8e1e2f16cffbb414a"..., 70) = 70 > write(3, "0000", 4) = 4 > write(3, "0032have 0bcf7932d0ea742e765a40b"..., 50) = 50 > write(3, "0032have 54e938a80873e85f9c02ab4"..., 50) = 50 > write(3, "0032have 2d0a9369c540519bab8018e"..., 50) = 50 > write(3, "0032have bf3060065ef9f0a8274fc32"..., 50) = 50 > write(3, "0032have 27602bd8de8456ac619b77c"..., 50) = 50 > [... another 42,000+ similar lines chopped off ...] > > 9b549d8e1e2f16cffbb414a is Chris Wright's tag for v2.6.16.18. So far, > as expected. > > And this is where things are getting interesting: > > $ git-name-rev 0bcf7932d0ea742e765a40b > 0bcf7932d0ea742e765a40b master > $ git-name-rev 54e938a80873e85f9c02ab4 > 54e938a80873e85f9c02ab4 34k-2.6.16.18 > $ git-name-rev 2d0a9369c540519bab8018e > 2d0a9369c540519bab8018e 34k-2.6.16.18~1 > $ git-name-rev bf3060065ef9f0a8274fc32 > bf3060065ef9f0a8274fc32 34k-2.6.16.18~2 > $ git-name-rev 27602bd8de8456ac619b77c > 27602bd8de8456ac619b77c 34k-2.6.16.18~3 > > It's sending every object back to the start of history ... Is this "master" commit 0bcf79 part of v2.6.16.18 history? If not, how diverged are you? That is, what does this command tell you? git rev-list b7d0617..master | wc -l Here, b7d0617 is the name of the commit object that is pointed by v2.6.16.18 tag. - : 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