Subject: Re: [RFC] GIT paths

From: Andreas Ericsson <[email-masked]>
Date: Wed, 26 Oct 2005 10:56:55 +0200

Junio C Hamano wrote:
> Andreas Ericsson <[email-masked]> writes:
> 
>>
>>The userdir is (with my previous patch) only expanded if the path starts 
>>with a tilde.
> 
> 
> I do not necessarily consider that a feature; see next item.
> 
> 
>>It must remove the leading slash for this syntax:
>>
>>	ssh://host.xz/~junio/repo
>>
>>Otherwise it would be passed as /~junio/repo to the remote end and no 
>>~user interpolation would be done.
> 
> 
> Not necessarily.  Having the remote end interpret "/~user" and
> "~user" the same way might make things more consistent;

Except that the shell interprets ~ and /~ differently, so "consistent" 
would depend on what we're consistent with.

There's also the fact that shell-scripts won't work on the remote end if 
  git_connect() maintains the leading slash. This doesn't matter at 
present, but I think it'd be better to keep all doors open. Having the 
trivial addendum on the client side also helps keeping the server-side 
nice and simple.

> in other
> words, "http://host/~user" is not spelled "http://host~user".
> 

True. I meant for this to be invisible to the users ofcourse, with 
git_connect() having some snippet such as this.

if(use_ssh || use_git && (*path == '/' && *(path + 1) == '~')
	*path++ = '\0';
else
	copy_path();

> 
>>I'd say make it invoke the programs with the canonicalized path. As you 
>>say, git-daemon has to verify that it's a proper git repo and in the 
>>whitelist anyway so I think it would be silly to add extra complexity to 
>>upload-pack and receive-pack.
> 
> 
> Yeah, I tend to agree here.
> 
> 
>>> - Give --server-root=/path/to/root flag to programs...
>>
>>If we stick with canonicalized paths I suppose this can be dropped.
> 
> 
> Sounds good.
> 
> 

I'll get busy then.

-- 
Andreas Ericsson                   [email-masked]
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231