* [PATCH 3/3] fallback SSH_ASKPASS when GIT_ASKPASS not set
@ 2010-02-24 15:15 Frank Li
2010-02-24 15:34 ` Erik Faye-Lund
2010-02-24 16:24 ` Junio C Hamano
0 siblings, 2 replies; 5+ messages in thread
From: Frank Li @ 2010-02-24 15:15 UTC (permalink / raw)
To: git; +Cc: gitster, Frank Li
If GIT_ASKPASS is not set and SSH_ASKPASS set, GIT_ASKPASS will
use SSH_ASKPASS. If GIT_ASKPASS set and SSH_ASKPASS is not set,
SSH_ASKPASS will use GIT_ASKPASS.
Signed-off-by: Frank Li <lznuaa@gmail.com>
---
git.c | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/git.c b/git.c
index 90c6daf..39e1eba 100644
--- a/git.c
+++ b/git.c
@@ -54,6 +54,11 @@ static int handle_options(const char ***argv, int *argc, int *envchanged)
{
int handled = 0;
+ if (getenv("GIT_ASKPASS") && !getenv("SSH_ASKPASS"))
+ setenv("SSH_ASKPASS", getenv("GIT_ASKPASS"), 1);
+ if (!getenv("GIT_ASKPASS") && getenv("SSH_ASKPASS"))
+ setenv("GIT_ASKPASS", getenv("SSH_ASKPASS"), 1);
+
while (*argc > 0) {
const char *cmd = (*argv)[0];
if (cmd[0] != '-')
--
1.7.0.85.g37fda.dirty
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 3/3] fallback SSH_ASKPASS when GIT_ASKPASS not set
2010-02-24 15:15 [PATCH 3/3] fallback SSH_ASKPASS when GIT_ASKPASS not set Frank Li
@ 2010-02-24 15:34 ` Erik Faye-Lund
2010-02-25 4:17 ` Frank Li
2010-02-24 16:24 ` Junio C Hamano
1 sibling, 1 reply; 5+ messages in thread
From: Erik Faye-Lund @ 2010-02-24 15:34 UTC (permalink / raw)
To: Frank Li; +Cc: git, gitster
On Wed, Feb 24, 2010 at 4:15 PM, Frank Li <lznuaa@gmail.com> wrote:
> If GIT_ASKPASS is not set and SSH_ASKPASS set, GIT_ASKPASS will
> use SSH_ASKPASS. If GIT_ASKPASS set and SSH_ASKPASS is not set,
> SSH_ASKPASS will use GIT_ASKPASS.
>
Since there's a maximum total size of the environment on Windows
(64kib), perhaps it's better to not increase the environment-size more
than necessary and instead check both variables when used? I must
admit doing so gives me a kind of yuck-feeling, but at least it should
also make non-builtins (like git-svn, which AFAICT is what you're
fixing) work consistently even if it's not called through the
git-wrapper...
> Signed-off-by: Frank Li <lznuaa@gmail.com>
> ---
> git.c | 5 +++++
> 1 files changed, 5 insertions(+), 0 deletions(-)
>
> diff --git a/git.c b/git.c
> index 90c6daf..39e1eba 100644
> --- a/git.c
> +++ b/git.c
> @@ -54,6 +54,11 @@ static int handle_options(const char ***argv, int *argc, int *envchanged)
> {
> int handled = 0;
>
> + if (getenv("GIT_ASKPASS") && !getenv("SSH_ASKPASS"))
> + setenv("SSH_ASKPASS", getenv("GIT_ASKPASS"), 1);
> + if (!getenv("GIT_ASKPASS") && getenv("SSH_ASKPASS"))
> + setenv("GIT_ASKPASS", getenv("SSH_ASKPASS"), 1);
> +
> while (*argc > 0) {
> const char *cmd = (*argv)[0];
> if (cmd[0] != '-')
> --
> 1.7.0.85.g37fda.dirty
>
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
--
Erik "kusma" Faye-Lund
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 3/3] fallback SSH_ASKPASS when GIT_ASKPASS not set
2010-02-24 15:34 ` Erik Faye-Lund
@ 2010-02-25 4:17 ` Frank Li
0 siblings, 0 replies; 5+ messages in thread
From: Frank Li @ 2010-02-25 4:17 UTC (permalink / raw)
To: kusmabite, git
>
> Since there's a maximum total size of the environment on Windows
> (64kib), perhaps it's better to not increase the environment-size more
> than necessary and instead check both variables when used? I must
> admit doing so gives me a kind of yuck-feeling, but at least it should
> also make non-builtins (like git-svn, which AFAICT is what you're
> fixing) work consistently even if it's not called through the
> git-wrapper...
>
Git-svn use the same way, please read first patch.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 3/3] fallback SSH_ASKPASS when GIT_ASKPASS not set
2010-02-24 15:15 [PATCH 3/3] fallback SSH_ASKPASS when GIT_ASKPASS not set Frank Li
2010-02-24 15:34 ` Erik Faye-Lund
@ 2010-02-24 16:24 ` Junio C Hamano
2010-02-25 1:37 ` Frank Li
1 sibling, 1 reply; 5+ messages in thread
From: Junio C Hamano @ 2010-02-24 16:24 UTC (permalink / raw)
To: Frank Li; +Cc: git, Shawn O. Pearce
Frank Li <lznuaa@gmail.com> writes:
> If GIT_ASKPASS is not set and SSH_ASKPASS set, GIT_ASKPASS will
> use SSH_ASKPASS. If GIT_ASKPASS set and SSH_ASKPASS is not set,
> SSH_ASKPASS will use GIT_ASKPASS.
If both are set and to different values, what should happen?
I think the basic idea is sound, but I am not sure if we should fallback
on both ways. If both GIT_ASKPASS and SSH_ASKPASS are set, the user is
probably telling us to use GIT_ASKPASS when git does something, similar to
how GIT_EDITOR and EDITOR interacts.
So probably the patch to implement the fallback should be more like
if (SSH_ASKPASS is set but not GIT_ASKPASS)
set GIT_ASKPASS from SSH_ASKPASS
and then the password prompter should use GIT_ASKPASS exclusively.
Of course, when we _do_ spawn ssh ourselves internally in connect.c, we
may have to export the value of GIT_ASKPASS as SSH_ASKPASS at the call
site to honor the user's request to use GIT_ASKPASS while in git (that is
part of "use GIT_ASKPASS exclusively").
But it feels wrong if we exported SSH_ASKPASS set from GIT_ASKPASS when
spawning processes in other codepaths, especially if SSH_ASKPASS is set
(or unset) differently from GIT_ASKPASS.
Shawn is CC'ed as git-gui currently honors only SSH_ASKPASS and this patch
changes the behaviour slightly.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 3/3] fallback SSH_ASKPASS when GIT_ASKPASS not set
2010-02-24 16:24 ` Junio C Hamano
@ 2010-02-25 1:37 ` Frank Li
0 siblings, 0 replies; 5+ messages in thread
From: Frank Li @ 2010-02-25 1:37 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git, Shawn O. Pearce
> So probably the patch to implement the fallback should be more like
>
> if (SSH_ASKPASS is set but not GIT_ASKPASS)
> set GIT_ASKPASS from SSH_ASKPASS
>
do you means just keep these?
+ if (!getenv("GIT_ASKPASS") && getenv("SSH_ASKPASS"))
+ setenv("GIT_ASKPASS", getenv("SSH_ASKPASS"), 1);
best regards
Frank Li
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2010-02-25 18:03 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-02-24 15:15 [PATCH 3/3] fallback SSH_ASKPASS when GIT_ASKPASS not set Frank Li
2010-02-24 15:34 ` Erik Faye-Lund
2010-02-25 4:17 ` Frank Li
2010-02-24 16:24 ` Junio C Hamano
2010-02-25 1:37 ` Frank Li
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).