On 03/22/2012 01:48 PM, Hong Xu wrote:
On Mar 22, 2012, at 20:10, Johannes Sixt<j.sixt@xxxxxxxxxxxxx> wrote:
Am 3/22/2012 11:28, schrieb Zbigniew Jędrzejewski-Szmek:
On 03/22/2012 07:04 AM, Hong Xu wrote:
Hello everyone,
If my ssh key is encrypted, "git pull origin mas<tab>" will give a
unexpected result, something like this:
git pull origin masEnter passphrase for key '/home/user/.ssh/id_rsa':
I know maybe it is not possible to complete the "master", but maybe it
is better to not complete anything than append something like that?
It is ssh itself which emits this message. The completion script calls
'git ls-remote origin', which in turn invokes ssh. Typing the password in
actually works, but I understand that you are annoyed by the message.
I don't think there's an easy way to silence this in git completion,
without affecting other times when the key would be requested. E.g. we
would want ssh to ask for the key while doing 'git pull', but not when run
automatically during completion.
Maybe git-ls-remote should learn --quiet?
No. IMHO, bash completion stretches too far by asking the remote for the
refs that it has.
I agree with this rather than using silent mode. If a encrypted key is found, I think we better drop the completion. I don't know whether there is a way to implement this yet, at least we can try to find it.
There's more than one reason why ssh would ask for a password. So just
checking for an encrypted key is pointless. Instead, ssh could be
invoked with -o BatchMode=yes. ls-remote could pass this option if it
was invoked with --quiet.
Possible this is just not worth the trouble and Hong should enter the
run ssh-agent and enter the password beforehand.
Zbyszek
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html