Thread (9 messages) flat view 9 messages, 4 authors, 2016-06-15

Re: [PATCH 1/8] Make the "traditionally-supported" URLs a special case

From: Daniel Barkalow <hidden>
Date: 2016-06-15 22:47:21

On Fri, 4 Sep 2009, Johannes Schindelin wrote:
Hi,

On Fri, 4 Sep 2009, Junio C Hamano wrote:
quoted
Daniel Barkalow [off-list ref] writes:
quoted
It turns out that the method used to form URLs that use a helper 
doesn't generalize well to other cases, because it interferes with the 
ssh-style locations. Instead, some different mechanism needs to be 
made up to handle arbitrary handlers that git doesn't know about. 
Since we want to keep supporting "http://something", that'll have to 
be a special case anyway, and so we might as well handle it by having 
git know what helpers to use for things that we've always supported, 
and use a single descriptive name for the helper that handles that 
collection of URLs.

As of this version, the idea is that there will be three ways helpers 
get selected:

 - git selects a helper based on the URL being something traditionally 
   supported internally; that is, git recognizes the URL and knows 
   what to run, if possible, to handle it

 - git uses the "vcs" option if it is set

 - something with the URL that we don't understand well enough yet to 
   design, but which doesn't seem to be possible to fit in as a single 
   rule with the first item.
Thanks for a clear description.

I do not see that there is much difference between the above description
and what Dscho is advocating, and I do not see anything to get excited
about as Dscho seems to do.
I mainly take exception at complicating things with a "vcs" config 
variable.

The way you describe it, I like it, as I do not see any mention of said 
config variable there.

If you allow "git clone <URL>" for foreign vcs URLs, you do not need the 
"vcs" variable.  If you require that variable, you cannot allow an easy 
clone, and you will earn my opposition.
Some foreign vcses, including the only one I ever personally use, do not 
have URLs, and require a bunch of options and paths to specify a 
repository. I don't want to have to use:

	url = p4://rsh:ssh+-q+-a+-x+-l+p4ssh+-q+-x+perforce+%2Fbin%2Ftrue//projects/foo/bar-1.0/...,//projects/foo/bar-1.1/...

(actually, I don't even know what the normal thing is for a URL for 
something that's split between multiple locations, or how URLs handle 
"servers" that are arbitrary commands including options which make a 
connection to the server)

For cases where the foreign vcs has something to put in the "url" spot, 
you don't need to set "vcs". In fact, you are only allowed to set one or 
the other of "vcs" and "url" with my current version. What you're 
interested in is explicitly left for later, when we have a prototype 
helper for such a foreign vcs and can try it out with potential users.

	-Daniel
*This .sig left intentionally blank*
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help