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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 27 Jan 2010, Ilari Liusvaara wrote:

> 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*
--
To unsubscribe from this list: 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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]