git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] connect: read $GIT_SSH_COMMAND from config file

From
Jeff King <peff@peff.net>
Date
Jun 27, 2016, 19:33 UTC
Message-ID
<20160627193322.GB10877@sigill.intra.peff.net>
In-Reply-To
<20160626111635.6809-1-pclouds@gmail.com>
On Sun, Jun 26, 2016 at 01:16:35PM +0200, Nguyễn Thái Ngọc Duy wrote:
Show 13 quoted lines
> Similar to $GIT_ASKPASS or $GIT_PROXY_COMMAND, we also read from
> config file first then fall back to $GIT_SSH_COMMAND.
> 
> This is useful for selecting different private keys targetting the
> same host (e.g. github)
> 
> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
> ---
>  core.gitProxy can also be used for my purpose (I need pushing, not
>  fetching though; the document says for fetching but I guess
>  core.gitProxy always works for pushing), but then the key file
>  is hidden behind the script. And writing a script for this seems a
>  bit overkill.

This patch makes sense to me. The way I have done this in the past is to use ssh's config. So I set my remote in one repo to "foo:repo1.git" and another to "bar:repo2.git", and then:

  Host foo
    Hostname actual-host.example.com
    SomeOption ...
  Host bar
    Hostname actual-host.example.com
    SomeOption ...

(or more likely, most repos are fine with the defaults, and you only need one fake host block for the oddball repo).

But I think your solution is a more direct and less confusing way of accomplishing the same thing.

Show 10 quoted lines
> diff --git a/Documentation/config.txt b/Documentation/config.txt
> index 58673cf..3bf070c 100644
> --- a/Documentation/config.txt
> +++ b/Documentation/config.txt
> @@ -443,6 +443,13 @@ specify that no proxy be used for a given domain pattern.
>  This is useful for excluding servers inside a firewall from
>  proxy use, while defaulting to a common proxy for external domains.
>  
> +core.sshCommand::
> +	If this variable is set then 'git fetch' and 'git push' will
Probably s/set/set,/.
> +	use the specified command instead of 'ssh' when they need to
> +	connect to a remote system. The command is in the same form as
> +	'GIT_SSH_COMMAND' environment variable and is overriden when
> +	the environment variable is set.
Probably s/'GIT_SSH_COMMAND'/the &/.

Are we using backticks for typesetting environment variables now? That has always been my preference, but I haven't kept up with the typography patches that have been flying lately. +cc Matthieu.

(Similar question for commands like 'git fetch').
> diff --git a/connect.c b/connect.c
> index c53f3f1..722dc3f 100644
> --- a/connect.c
> +++ b/connect.c
The code itself looks obviously correct. :)
-Peff
Previous: Nguyễn Thái Ngọc DuyNext: Matthieu Moy
Message 2 of 5 in “connect: read $GIT_SSH_COMMAND from config file”
  1. connect: read $GIT_SSH_COMMAND from config fileNguyễn Thái Ngọc Duy, Jun 26, 2016
  2. Jeff KingJun 27, 2016
  3. Matthieu MoyJun 28, 2016
  4. Junio C HamanoJun 28, 2016
  5. Eric SunshineJun 28, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.