threads / discuss / 9742

git clone over http

Subject: git clone over http

## tl;dr

5 messages between Sep 2, 2007 and Sep 4, 2007.

replies: 4people: 4as markdown or json

Robin Rosenberg· Sep 2, 2007, 09:23 UTC · lore

git clone (1.5.3) with http is somewhat unreliable. I've noticed if can actually give me different versions of a branch each time I run it, eventually yielding the one I'm expecting. And now this:

(Using master, just after rc7) $ git clone http://unix.schottelius.org/git/cLinux/cinit.git Initialized empty Git repository in /home/me/tmp/cinit/.git/ got c56b79346e5058762db82cb98647628ddf3d6ebd walk c56b79346e5058762db82cb98647628ddf3d6ebd got c0d6c3ae3b4999892d7cbc22fd719c0e9797be59 got 73dc306099bdb21abf22e4a015d3059e8577bb49 got 6943289356f8431073cb8c7708bb7c9c05888333 walk 6943289356f8431073cb8c7708bb7c9c05888333 Getting alternates list for http://unix.schottelius.org/git/cLinux/cinit.git got 3912109b5cd65a68039d473c11c9f7ac2303e06d got 0fbf76f58b248f6b11421db5aa9c02fe12b0ce7d Getting pack list for http://unix.schottelius.org/git/cLinux/cinit.git got 3ac57ee54f4c4e350622888c4e37213a7d2337b7 got a170a50db31947dfae0b27d5dd8bb54b5ac97b20 got 00f2651b7c63c56fda93d2f94cc2a2b7c28ac86b Getting index for pack 119f90491743d6454866ba8761f49757e359cec1 got eec4105805e9f57b27158f847c9ce1b2b6eb40c7 got 8a686b4ae9cbb91a74ff71984baee0c944950c05 Getting index for pack 22000d3bf6fc9fdf439f63c8b33817f5786298f6 got dc4d9d9a69310c7d4f8e1fdf6517c10e8c6ab227 Getting index for pack 41850f3f697748a77d37d4d210415031bc6c73c4

/usr/local/bin/git-clone: line 40: 14823 Segmenteringsfel        git-http-fetch $v -a -w "$tname" "$sha1" "$1"
It doesn't repeat itself, but I cannot clone because it always crashes.

[me@lathund tmp]$ git clone http://unix.schottelius.org/git/cLinux/cinit.git Initialized empty Git repository in /home/me/tmp/cinit/.git/ got c56b79346e5058762db82cb98647628ddf3d6ebd walk c56b79346e5058762db82cb98647628ddf3d6ebd got c0d6c3ae3b4999892d7cbc22fd719c0e9797be59 got 73dc306099bdb21abf22e4a015d3059e8577bb49 got 6943289356f8431073cb8c7708bb7c9c05888333 walk 6943289356f8431073cb8c7708bb7c9c05888333 got 0fbf76f58b248f6b11421db5aa9c02fe12b0ce7d Getting alternates list for http://unix.schottelius.org/git/cLinux/cinit.git got 3912109b5cd65a68039d473c11c9f7ac2303e06d

!! now wait a minute. Why isn't it getting 0fbf76f58b248f6b11421db5aa9c02fe12b0ce7d here like it did?

Getting pack list for http://unix.schottelius.org/git/cLinux/cinit.git got a170a50db31947dfae0b27d5dd8bb54b5ac97b20 got 00f2651b7c63c56fda93d2f94cc2a2b7c28ac86b Getting index for pack 119f90491743d6454866ba8761f49757e359cec1 got eec4105805e9f57b27158f847c9ce1b2b6eb40c7

etc a hundred objects or so:

got f0d2e75fa8247f246aeb8ecdadd94d307481ea78 got 3b01bfe1a064a4407bd6308cc4f02fcc2ac0d9a7 got 3c54e71aca555fcfc163809669aa39426cb52421 got 750e330305676e09479f63532782ce93462e71f5 *** glibc detected *** git-http-fetch: corrupted double-linked list: 0x080dd9f0 *** ======= Backtrace: ========= /lib/i686/libc.so.6[0x44c99516] /lib/i686/libc.so.6[0x44c9b728] /lib/i686/libc.so.6(__libc_malloc+0x85)[0x44c9d075] /lib/libz.so.1(zcalloc+0x20)[0x44d9dfd0] git-http-fetch[0x804cb78] git-http-fetch[0x804ae2b] git-http-fetch[0x804aeab] git-http-fetch[0x804d265] git-http-fetch[0x804a732] git-http-fetch[0x804c240] /lib/i686/libc.so.6(__libc_start_main+0xdc)[0x44c4bd8c] git-http-fetch[0x804a071]

I'll spare you the detfailt unless you want it.
-- robin
Sean· Sep 2, 2007, 18:54 UTC · re: Robin Rosenberg · lore

Re: git clone over http

On Sun, 2 Sep 2007 11:23:03 +0200 Robin Rosenberg <robin.rosenberg.lists@dewire.com> wrote:

Hi Robin,
> git clone (1.5.3) with http is somewhat unreliable. I've noticed if can actually give
> me different versions of a branch each time I run it, eventually yielding
> the one I'm expecting.  And now this:

Hmmm, that's very odd. Tried it 3 times here and master was always at the same commit (0421997bfd5).

> (Using master, just after rc7)
> $ git clone http://unix.schottelius.org/git/cLinux/cinit.git
[...]
> /usr/local/bin/git-clone: line 40: 14823 Segmenteringsfel        git-http-fetch $v -a -w "$tname" "$sha1" "$1"
> 
> It doesn't repeat itself, but I cannot clone because it always crashes.

Using 1.5.3 here and it works just fine. Perhaps it has something to do with your version of the Curl library? This is what is in use here:

$ curl --version
curl 7.16.4 (i686-pc-linux-gnu) libcurl/7.16.4 OpenSSL/0.9.8e zlib/1.2.3
Protocols: tftp ftp telnet dict http file https ftps 
Features: Largefile NTLM SSL libz
Sean
Josh England· Sep 4, 2007, 16:54 UTC · re: Robin Rosenberg · lore

Re: git clone over http

On Sun, 2007-09-02 at 11:23 +0200, Robin Rosenberg wrote:
> git clone (1.5.3) with http is somewhat unreliable. I've noticed if
> can actually give
> me different versions of a branch each time I run it, eventually yielding
> the one I'm expecting.  And now this:

I don't see this behavior, but I do see other wierdness cloning via http. Anytime I clone a repo (any repo) via http from behind the firewall/proxy at work I never get any branches. 'git branch' only ever shows 'master'. I can't checkout and work on any other branch. I can work around the problem by cloning on a box that is more open, but was wondering if anyone knows how to fix this.

-JE
Junio C Hamano· Sep 4, 2007, 17:29 UTC · re: Josh England · lore

Re: git clone over http

"Josh England" <jjengla@sandia.gov> writes:
Show 12 quoted lines
> On Sun, 2007-09-02 at 11:23 +0200, Robin Rosenberg wrote:
>> git clone (1.5.3) with http is somewhat unreliable. I've noticed if
>> can actually give
>> me different versions of a branch each time I run it, eventually yielding
>> the one I'm expecting.  And now this:
>
> I don't see this behavior, but I do see other wierdness cloning via
> http.  Anytime I clone a repo (any repo) via http from behind the
> firewall/proxy at work I never get any branches.  'git branch' only ever
> shows 'master'.  I can't checkout and work on any other branch.  I can
> work around the problem by cloning on a box that is more open, but was
> wondering if anyone knows how to fix this.
Well, what does "git branch -r" say?

If you see the remote tracking branches out of your branch (aka "heads/") namespace, that has been the default for quite some time since 1.5.0 days.

Perhaps "more open" one has ancient git that dumped remote tracking branches in your branch namespace, while your "behind firewall" one has not so ancient git?

Robin Rosenberg· Sep 4, 2007, 18:19 UTC · re: Junio C Hamano · lore

Re: git clone over http

tisdag 04 september 2007 skrev Junio C Hamano:
Show 24 quoted lines
> "Josh England" <jjengla@sandia.gov> writes:
> 
> > On Sun, 2007-09-02 at 11:23 +0200, Robin Rosenberg wrote:
> >> git clone (1.5.3) with http is somewhat unreliable. I've noticed if
> >> can actually give
> >> me different versions of a branch each time I run it, eventually yielding
> >> the one I'm expecting.  And now this:
> >
> > I don't see this behavior, but I do see other wierdness cloning via
> > http.  Anytime I clone a repo (any repo) via http from behind the
> > firewall/proxy at work I never get any branches.  'git branch' only ever
> > shows 'master'.  I can't checkout and work on any other branch.  I can
> > work around the problem by cloning on a box that is more open, but was
> > wondering if anyone knows how to fix this.
> 
> Well, what does "git branch -r" say?
> 
> If you see the remote tracking branches out of your branch (aka
> "heads/") namespace, that has been the default for quite some
> time since 1.5.0 days.
> 
> Perhaps "more open" one has ancient git that dumped remote
> tracking branches in your branch namespace, while your "behind
> firewall" one has not so ancient git?

The version where I noticed that strange behaviour was 1.5.3-rc6 on the client and 1.5.1.4 on the server. The local repo was originally cloned with 1.5.something. The interesting branch was a non-fastword one (i.e. "pu") and on the server I was running git-update-server-info every 30 minutes. The pu branch on the server was stable during the strange period. I'm not sure whether I got the odd behaviour within those 30 minutes or not.

The url to the repo is http: //rosenberg.homelinux.net/repos/EGIT.git
I cannot http clone myself anymore it seems, but someone else may succeed better.
My curl is 7.16.0. Haven't tried any other version yet.
-- robin

← back to recent threads