git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [RFC][RESEND][PATCH] Allow fetching from multiple repositories at once

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Sep 23, 2006, 17:54 UTC
Message-ID
<Pine.LNX.4.63.0609231947340.25853@wbgn013.biozentrum.uni-wuerzburg.de>
In-Reply-To
<20060923173943.GA20017@pasky.or.cz>
Hi,
On Sat, 23 Sep 2006, Petr Baudis wrote:
Show 37 quoted lines
> Dear diary, on Sat, Sep 23, 2006 at 07:23:01PM CEST, I got a letter
> where Johannes Schindelin <Johannes.Schindelin@gmx.de> said that...
> > On Sat, 23 Sep 2006, Petr Baudis wrote:
> > 
> > > Dear diary, on Sat, Sep 23, 2006 at 06:57:36PM CEST, I got a letter
> > > where A Large Angry SCM <gitzilla@gmail.com> said that...
> > > > Petr Baudis wrote:
> > > > >You still need to pass git-fetch-pack some URL in addition to the
> > > > >repositories - it is used only for git_connect(), the purpose is that
> > > > >repositories must be local directories so if you want to talk remote, you
> > > > >need to do something like
> > > > >
> > > > >	git-fetch-pack git://kernel.org/pub/scm/git/git.git 
> > > > >	--repo=/pub/scm/git/git.git master next 
> > > > >	--repo=/pub/scm/cogito/cogito.git master
> > > > >
> > > > 
> > > > Can't this be done with a simple wrapper around git-fetch* ?
> > > 
> > > The point is that that is too slow (the difference is noticeable
> > > especiall in the case there is no new stuff ready), you need to create a
> > > connection and do whole lot of work for each of the repositories.
> > 
> > I still firmly believe that it would be way more efficient to fetch all 
> > those branches into _one_ proxy repository. Especially since you can reuse 
> > the objects with an alternate, which has an additional benefit over your 
> > approach.
> 
>   Huh? You can reuse the objects with my approach as well. Actually, it
> is automagically done so.
> 
>   With proxy repository, you would still need a server-side setup to
> maintain that repository, and specialized client-side porcelain to fetch
> from it. My approach initially requires some core changes (which aren't
> very pretty as it is but are not very fundamental or logically intrusive
> either) but in the longer run it pays off since you don't need a
> convoluted server-side setup for that.

No, you do not need _any_ server-side setup. And you do not need any specialized client-side porcelain other than a script, which just does the job.

The point is, your changes are not only intrusive, they are unnecessary.
You can even declare the first repository as the proxy. Sketch of script:
	- find which branches are wanted at all,
	- do the fetch (of all wanted branches) in the first repository,
	  storing the refs under refs/multi/,
	- for each repository
		- ensure that the first repo is given as alternative
		- store the branches this repo wants (you only need to 
		  update the refs, since you have all the objects)
This is not particularly complicated, is it?

Ciao, Dscho

Previous: Petr BaudisNext: Petr Baudis
Message 6 of 13 in “Allow fetching from multiple repositories at once”
  1. Petr BaudisSep 23, 2006
  2. A Large Angry SCMSep 23, 2006
  3. Petr BaudisSep 23, 2006
  4. Johannes SchindelinSep 23, 2006
  5. Petr BaudisSep 23, 2006
  6. Johannes SchindelinSep 23, 2006
  7. Petr BaudisSep 23, 2006
  8. Johannes SchindelinSep 23, 2006
  9. Petr BaudisSep 23, 2006
  10. Junio C HamanoSep 23, 2006
  11. Petr BaudisSep 23, 2006
  12. Jakub NarebskiSep 23, 2006
  13. Petr BaudisSep 23, 2006

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.