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

Re: [PATCH not-for-mainline] Implement git-vcs-p4

From
Daniel Barkalow <barkalow@iabervon.org>
Date
Jan 27, 2010, 17:28 UTC
Message-ID
<alpine.LNX.2.00.1001271218360.14365@iabervon.org>
In-Reply-To
<20100127171426.GA20820@Knoppix>
On Wed, 27 Jan 2010, Ilari Liusvaara wrote:
Show 52 quoted lines
> On Wed, Jan 27, 2010 at 11:49:02AM -0500, Daniel Barkalow wrote:
> > On Wed, 27 Jan 2010, Ilari Liusvaara wrote:
> > 
> > > On Wed, Jan 27, 2010 at 12:18:35PM +0100, Tor Arvid Lund wrote:
> > > 
> > > > Then, I did 'git fetch', and got a seg fault. I got around it by
> > > > commenting out a line:
> > > > 
> > > > diff --git a/transport.c b/transport.c
> > > > index 7714fdb..5b404f7 100644
> > > > --- a/transport.c
> > > > +++ b/transport.c
> > > > @@ -924,7 +924,7 @@ struct transport *transport_get(struct remote
> > > > *remote, const char *url)
> > > >         ret->url = url;
> > > > 
> > > >         /* In case previous URL had helper forced, reset it. */
> > > > -       remote->foreign_vcs = NULL;
> > > > +/*     remote->foreign_vcs = NULL;*/
> > > > 
> > > >         /* maybe it is a foreign URL? */
> > > >         if (url) {
> > > > 
> > > 
> > > Hmm... And just commenting out that line will break case if you have
> > > push URL using remote helpers and second one for same remote that
> > > doesn't. 
> > > 
> > > I'll look into that issue.
> > 
> > I think that field should only be used for things like:
> > 
> > [remote "foo"]
> > 	vcs = something
> > 	...
> > 
> > and the case where the helper is inferred from the URL shouldn't use a 
> > field on the remote, but be passing the information around in function 
> > arguments. A field of the struct remote only really makes sense with 
> > information that applies to the whole remote.
> 
> Why that 'remote->foreign_vcs = NULL;' is there is the following case:
> 
> [remote "origin"]
> url = gits::git://[@/tmp/gits]/git-d2
> url = ssh://repo.or.cz/srv/git/git-daemon2.git
> 
> The first URL is handled by 'gits' helper (as it should). But without
> resetting the helper, it tries to pass that ssh:// URL to 'gits' helper
> too (instead of handling it internally).
> 
> But, that reset didn't take the vcs setting into account.

Yes, but the first URL should be directed to the 'gits' helper without setting remote->foreign_vcs. That is, instead of setting remote->foreign_vcs, you should just call transport_helper_init(ret, xstrndup(url, p - url));

	-Daniel
*This .sig left intentionally blank*
Previous: Ilari LiusvaaraNext: Ilari Liusvaara
Message 9 of 11 in “Implement git-vcs-p4”
  1. Implement git-vcs-p4Daniel Barkalow, Jan 25, 2010
  2. Sverre RabbelierJan 25, 2010
  3. Daniel BarkalowJan 25, 2010
  4. Sverre RabbelierJan 25, 2010
  5. Tor Arvid LundJan 27, 2010
  6. Ilari LiusvaaraJan 27, 2010
  7. Daniel BarkalowJan 27, 2010
  8. Ilari LiusvaaraJan 27, 2010
  9. Daniel BarkalowJan 27, 2010
  10. Ilari LiusvaaraJan 27, 2010
  11. Daniel BarkalowJan 27, 2010

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.