Skip to contentSkip to conversation

disable interactive prompting

DISCUSSION Ernesto Alfonso 3 participants 5 messages Oct 4, 2017

lore
Share & tools
lore
#0 lore raw

Hi,

Waiting for git-push synchronously slows me down, so I have a bash alias/function to do this in the background. But when my origin is https, I get an undesired interactive prompt. I've tried to disable by redirecting stdin:

git push ${REMOTE} ${BRANCH} &>/dev/null </dev/null

but I still get an interactive prompt.

Is there a way to either

1. disable interactive prompting
2. programmatically determine whether a git command (or at least a git push) would interactively prompt

Thanks,

Ernesto

#1 lore raw

Hi Ernesto,

Quoted 7 lines · Ernesto Alfonso

Waiting for git-push synchronously slows me down, so I have a bash alias/function to do this in the background. But when my origin is https, I get an undesired interactive prompt. I've tried to disable by redirecting stdin:

git push ${REMOTE} ${BRANCH} &>/dev/null </dev/null

Quoted 7 lines

but I still get an interactive prompt.

Is there a way to either

1. disable interactive prompting
2. programmatically determine whether a git command (or at least a git push) would interactively prompt

You left out an important detail: what does the interactive prompt in question say?

The general question is also interesting, but seeing the particular prompt would make it easy to look into the specific case at the same time.

Thanks,
Jonathan

#2 lore raw

Hi,

The prompt asks for my https username/password:

Quoted 11 lines
$ grv
origin	https://github.com/user/dotemacs (fetch)
origin	https://github.com/user/dotemacs (push)
$ gpom
[1] 22549
$ Username for 'https://github.com': 
$ fg
{ git push origin master &>/dev/null < /dev/null; LAST=$?; test 0 -eq $LAST || echo "gpom failed with $LAST !"; }
Password for 'https://asd,[email protected]': 
gpom failed with 128 !
$ 

Thanks,

Ernesto

Quoted 28 lines · Jonathan Nieder

Hi Ernesto,

Quoted 7 lines · Ernesto Alfonso

Waiting for git-push synchronously slows me down, so I have a bash alias/function to do this in the background. But when my origin is https, I get an undesired interactive prompt. I've tried to disable by redirecting stdin:

git push ${REMOTE} ${BRANCH} &>/dev/null </dev/null

Quoted 7 lines

but I still get an interactive prompt.

Is there a way to either

1. disable interactive prompting
2. programmatically determine whether a git command (or at least a git push) would interactively prompt

You left out an important detail: what does the interactive prompt in question say?

The general question is also interesting, but seeing the particular prompt would make it easy to look into the specific case at the same time.

Thanks,
Jonathan

#3 lore raw
In reply to Ernesto Alfonso
Quoted 7 lines · Ernesto Alfonso

Waiting for git-push synchronously slows me down, so I have a bash alias/function to do this in the background. But when my origin is https, I get an undesired interactive prompt. I've tried to disable by redirecting stdin:

git push ${REMOTE} ${BRANCH} &>/dev/null </dev/null

Quoted 7 lines

but I still get an interactive prompt.

Is there a way to either

1. disable interactive prompting
2. programmatically determine whether a git command (or at least a git push) would interactively prompt

I assume the prompt is for credentials, since that's generally the only thing git-push will prompt for.

Try:

  $ git help git | sed -ne '/PROMPT/,/^$/p'
         GIT_TERMINAL_PROMPT
           If this environment variable is set to 0, git will not prompt on
           the terminal (e.g., when asking for HTTP authentication).

Of course that just stops the prompting. If Git needs a credential and you don't provide it, then the push will fail.

For advice on that that, try "git help credentials".

-Peff

#4 lore raw

Thanks for pointing out the option.

I tried "git help push" and searched for "prompt", "interactive", "credentials"...

I don't think I would have figured to try
"git help git" from "git help" even after reading it carefully.

I'd suggest adding a hint in "git help".

I also don't seem have the GIT_TERMINAL_PROMPT in "git version 1.8.3.1" but I can fix this.

Thanks,

Ernesto

Quoted 33 lines · Jeff King
Quoted 7 lines · Ernesto Alfonso

Waiting for git-push synchronously slows me down, so I have a bash alias/function to do this in the background. But when my origin is https, I get an undesired interactive prompt. I've tried to disable by redirecting stdin:

git push ${REMOTE} ${BRANCH} &>/dev/null </dev/null

Quoted 7 lines

but I still get an interactive prompt.

Is there a way to either

1. disable interactive prompting
2. programmatically determine whether a git command (or at least a git push) would interactively prompt

I assume the prompt is for credentials, since that's generally the only thing git-push will prompt for.

Try:

  $ git help git | sed -ne '/PROMPT/,/^$/p'
         GIT_TERMINAL_PROMPT
           If this environment variable is set to 0, git will not prompt on
           the terminal (e.g., when asking for HTTP authentication).

Of course that just stops the prompting. If Git needs a credential and you don't provide it, then the push will fail.

For advice on that that, try "git help credentials".

-Peff