threads / discuss / 43182

Re: StGIT repository not clonable?

Subject: Re: StGIT repository not clonable?

## tl;dr

6 messages between Nov 11, 2006 and Nov 12, 2006.

replies: 5people: 5as markdown or json

Horst H. von Brand· Nov 11, 2006, 03:56 UTC · lore

StGIT repository not clonable?

I'm trying to update my StGIT repo here, and get a crash from git-http-fetch (git 1.4.3.4). Trying to clone it anew gives:

[vonbrand@laptop13 tmp]$ git-clone http://homepage.ntlworld.com/cmarinas/stgit.git error: Unable to start request error: Could not interpret heads/master as something to pull

What am I doing wrong?
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                    Fono: +56 32 2654431
Universidad Tecnica Federico Santa Maria             +56 32 2654239
Karl Hasselström· Nov 11, 2006, 12:36 UTC · re: Horst H. von Brand · lore
On 2006-11-11 00:56:47 -0300, Horst H. von Brand wrote:
Show 8 quoted lines
> I'm trying to update my StGIT repo here, and get a crash from
> git-http-fetch (git 1.4.3.4). Trying to clone it anew gives:
>
> [vonbrand@laptop13 tmp]$ git-clone http://homepage.ntlworld.com/cmarinas/stgit.git
> error: Unable to start request
> error: Could not interpret heads/master as something to pull
>
> What am I doing wrong?
It works for me, with
  $ git --version
  git version 1.4.3.3.g8387
But it's horribly slow. Catalin, have you ever packed that repository?
-- 
Karl Hasselström, kha@treskal.com
Catalin Marinas· Nov 11, 2006, 21:59 UTC · re: Karl Hasselström · lore
On 11/11/06, Karl Hasselström <kha@treskal.com> wrote:
Show 10 quoted lines
> On 2006-11-11 00:56:47 -0300, Horst H. von Brand wrote:
> > I'm trying to update my StGIT repo here, and get a crash from
> > git-http-fetch (git 1.4.3.4). Trying to clone it anew gives:
>
> It works for me, with
>
>   $ git --version
>   git version 1.4.3.3.g8387
>
> But it's horribly slow. Catalin, have you ever packed that repository?

I've never packed it. IIRC, there was some advise in some GIT document or e-mail saying that you shouldn't pack if the export is over a dumb protocol. That's good for people pulling regularly but bad for cloning.

Anyway, thanks to Pasky, you can now pull/clone it over the git protocol directly - git://repo.or.cz/stgit.git. This repository is up to date. I have a plan to move the main StGIT repository to Pasky's server but I'm a bit busy with other things at the moment.

Karl Hasselström· Nov 11, 2006, 22:34 UTC · re: Catalin Marinas · lore
On 2006-11-11 21:59:32 +0000, Catalin Marinas wrote:
> I've never packed it. IIRC, there was some advise in some GIT
> document or e-mail saying that you shouldn't pack if the export is
> over a dumb protocol. That's good for people pulling regularly but
> bad for cloning.

It's _extremely_ bad when cloning. There's a separate HTTP request for each object in the repository, which means lots of time and lots of web server load. It's just about doable to clone the StGIT repository now because it's so small.

-- 
Karl Hasselström, kha@treskal.com
Jakub Narebski· Nov 11, 2006, 22:48 UTC · re: Catalin Marinas · lore
Catalin Marinas wrote:
> IIRC, there was some advise in some GIT document
> or e-mail saying that you shouldn't pack if the export is over a dumb
> protocol. That's good for people pulling regularly but bad for
> cloning.

By the way, does dumb protocols download _whole_ packs only? Or do they download parts of packs (curl can do that, I think)?

-- 
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
Petr Baudis· Nov 12, 2006, 15:36 UTC · re: Jakub Narebski · lore
On Sat, Nov 11, 2006 at 11:48:04PM CET, Jakub Narebski wrote:
Show 9 quoted lines
> Catalin Marinas wrote:
> 
> > IIRC, there was some advise in some GIT document
> > or e-mail saying that you shouldn't pack if the export is over a dumb
> > protocol. That's good for people pulling regularly but bad for
> > cloning.
> 
> By the way, does dumb protocols download _whole_ packs only? Or do they
> download parts of packs (curl can do that, I think)?

curl can, but it might very easily get even much more expensive than downloading the whole patch unless your latency is very small and bandwidth very tight, which would be quite a unusual situation.

It's true that repacking can hurt dumb protocols - if you repack often, dumb clients will have to re-fetch the single whole patck with all the stuff they already have plus the few additional objects they are missing.

But at least packing once can be a huge improvement and won't hurt the dumb clients since their problem is with incremental fetches. Furthermore, if you do just repack, not repack -a, the cost for dumb protocols is quite small (though it's not optimal packing strategy):

It is not unlikely at all that if you have set of unpacked objects A, client fetches that, then you create set of objects B and then repack, creating pack(A \cup B), this pack will still be much smaller than the set of objects B (even if |A| >> |B|) so it's more beneficial even for the dumb clients to refetch the A objects contained in the pack, instead of fetching just the unpacked B objects.

By the way, in case of glibc-cvs the pack sice is 104M, and after importing new CVS changes after few days, the repository size doubled to 200M. git-repack -a -d brought that _back_ to 104M!

Packs are a funny thing.
-- 
				Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
#!/bin/perl -sp0777i<X+d*lMLa^*lN%0]dsXx++lMlN/dsM0<j]dsj
$/=unpack('H*',$_);$_=`echo 16dio\U$k"SK$/SM$n\EsN0p[lN*1

← back to recent threads