From: Shawn O. Pearce Date: Tue, 09 Jun 2009 14:28:52 GMT Subject: Re: Comments pack protocol description in "Git Community Book" (second round) Message-ID: <20090609142852.GL16497@spearce.org> In-Reply-To: <200906091139.58509.jnareb@gmail.com> Jakub Narebski wrote: > On Sun, 7 June 2009, Shawn O. Pearce wrote: > > > > I've run into problems with hosting sites like GitHub and Gitoriuous > > not correctly honoring some ssh invokes, because they use the forced > > command execution model and were handling only one case that could > > be presented to them. > > Can you offer some details? Or is it out of scope of git pack protocol > description, and more about correctly implementing SSH protocol and > remote command invocation in it? For URI user@site:project.git the following should all succeed: 1) ssh user@site "git-receive-pack project.git" 2) ssh user@site "git receive-pack project.git" 3) ssh user@site "git-receive-pack 'project.git'" 4) ssh user@site "git receive-pack 'project.git'" Note that the command name can be dash or dashless, and the project name can be wrapped in single quotes, or not wrapped in single quotes. C Git tends to create form 3 by default. JGit also tries to use form 3 by default, but I've heard some reports from users saying it produced one of the other forms. For ssh://user@site/project.git the following should succeed: 1) ssh user@site "git-receive-pack /project.git" 2) ssh user@site "git receive-pack /project.git" 3) ssh user@site "git-receive-pack '/project.git'" 4) ssh user@site "git receive-pack '/project.git'" If you are a site like GitHub, where '/' means nothing to you because all repositories are scoped by user, the extra leading '/' appears here simply because of the style of URI used, and the '/' should be dropped before evaluating the path. GitHub had a problem with ssh:// URIs, its fixed now. I think Gitorious had a problem with the command name, but that's fuzzy in my memory. -- Shawn.