Hi, list!
$ git --version
git version 1.5.5.1I have a post-commit hook which does backups for me:
username=agladysh
for name in `git branch | cut -b3-`
do
remote=$username-$name
echo pushing $name as $remote
git push backup +$name:refs/heads/$remote
doneThe backup repo is behind ssh. Recently I have put password on my ssh
key and post-commit hook ask me for password once for each branch.
This makes unhappy commit process from Git GUI -- after I shut it
down, there are multiple ssh key password prompts in the shell from
where I launched it, and it does not display any input I enter.Any advice? I do want to input password for my key each time I use it.
Thanks in advance,
Alexander.
--
Isn't that what "git push --all" does? And that will only ask for a
For a graphical tool, you might want to use something like
gtk-led-askpass, which shows a window with a password prompt. SSH will
make use of it if SSH_ASKPASS contains its path _and_ ssh is not started
from a terminal. Unfortunately, the latter is probably not true for git
gui most of the time.One way hack around this is to do "setsid git push ..." in your
post-commit hook. But that will break if you have no X or no tool for
SSH_ASKPASS.Another really hackish work-around is to
replace:
exec 'wish' "$argv0" -- "$@"
with
exec 'setsid' 'wish' "$argv0" -- "$@"in git-gui. Git gui will then get its own session, detached from the
terminal and ssh will start using SSH_ASKPASS. That at least won't break
when you're not running X (simply because you won't be running git gui
then ;-)), but doesn't feel smart either.Maybe someone else can come up with a sane solution that makes git gui
more SSH_ASKPASS-friendly.Björn
--
Redirect stdin from /dev/null
--
Does that actually work for you? It didn't work for me, because ssh then
simply goes and opens /dev/tty to ask for the password.$ ssh -V
OpenSSH_4.7p1 Debian-10, OpenSSL 0.9.8g 19 Oct 2007Björn
--
No :( I took this information from sshs manpage:
SSH_ASKPASS If ssh needs a passphrase, it will read the
passphrase from the current terminal if it was run
from a terminal. If ssh does not have a terminal
associated with it but DISPLAY and SSH_ASKPASS are
set, it will execute the program specified by
SSH_ASKPASS and open an X11 window to read the
passphrase. This is particularly useful when call‐
ing ssh from a .xsession or related script. (Note
that on some machines it may be necessary to redi‐
rect the input from /dev/null to make this work.)--
Yeah, that got me trying the redirection, too. But the "If ssh does not
have a terminal associated" part is actually what counts, it seems.
Because ssh falls back to /dev/tty if stdin doesn't work. Guess the
stdin redirect might just be required in some cases, where it would use
/dev/stdin directly, so you force it to try /dev/tty and then use
SSH_ASKPASS.Björn
--
I had to perform this same task a few weeks ago, and ended up using
'setsid' to get rid of the controlling tty. You may also need to unset
SSH_ASKPASS and DISPLAY.-Peff
--
git push --all would not rename my branches... But, I guess, this can
<Useful advice regarding how to solve SSH_ASKPASS issue skipped.>
Thanks, I would try that. I'm mostly working from X, so lack of X
should be not an issue... However I'd like to avoid patching my localThat would be great.
Thank you,
Alexander.
--
Well, the "lack of X" issue only arises if you patch your post-commit
hook. Adding setsid to the git push command was supposed to happen there
;-) You could probably even make that conditional, so that setsid is
only used then DISPLAY is set, then it should even work when there's no
X, but still be annoying when you commit from a terminal... (At least I
would prefer to enter the password in the terminal then).Björn
--
| Bart Van Assche | Integration of SCST in the mainstream Linux kernel |
| Adrian Bunk | -Os versus -O2 |
| Alan Cox | [PATCH 00/80] TTY updates for 2.6.28 |
| Greg Kroah-Hartman | [PATCH 005/196] Chinese: add translation of SubmittingDrivers |
git: | |
| Gerrit Renker | [PATCH 15/37] dccp: Set per-connection CCIDs via socket options |
| David Miller | Re: [GIT]: Networking |
| Natalie Protasevich | [BUG] New Kernel Bugs |
| Jarek Poplawski | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
