Re: Comments pack protocol description in "Git Community Book" (second round)
- From
Shawn O. Pearce <spearce@spearce.org>
- Date
- Jun 9, 2009, 14:28 UTC
- Message-ID
- <20090609142852.GL16497@spearce.org>
- In-Reply-To
- <200906091139.58509.jnareb@gmail.com>
Jakub Narebski <jnareb@gmail.com> wrote:
Show 10 quoted lines
> 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.