threads / discuss / 35348

submodule update and core.askpass

Subject: submodule update and core.askpass

## tl;dr

4 messages between Nov 16, 2013 and Nov 22, 2013.

replies: 3people: 3as markdown or json

Dmitry Neverov· Nov 16, 2013, 21:24 UTC · lore
Hi,

it seems like "git submodule update" command doesn't respect the core.askpass option specified in a command line. I have a repository with a submodule, I serve it over http which requires an authorization and both main repository and submodule require the same credentials. I run the following commands (pass.sh is a script which prints a password to stdout):

git -c core.askpass=pass.sh clone main-repo cd main-repo git submodule init git submodule sync git -c core.askpass=pass.sh submodule update

The last command asks for a password interactively. 

I've run bisect, it seems like it started failing from commit be8779f7ac9a3be9aa783df008d59082f4054f67. I've checked: submodule update works fine in 1.8.5.rc2 with removed call to clear_local_git_env.

Is there any way to make git submodule update respect core.askpass option, so one can use it in scripts?

-- 
Dmitry Neverov
Thomas Rast· Nov 16, 2013, 21:42 UTC · re: Dmitry Neverov · lore

Re: submodule update and core.askpass

+cc Daniel and Jens
Dmitry Neverov <dmitry.neverov@jetbrains.com> writes:
Show 11 quoted lines
> git -c core.askpass=pass.sh clone main-repo
> cd main-repo
> git submodule init
> git submodule sync
> git -c core.askpass=pass.sh submodule update
>
> The last command asks for a password interactively. 
>
> I've run bisect, it seems like it started failing from commit
> be8779f7ac9a3be9aa783df008d59082f4054f67. I've checked: submodule update
> works fine in 1.8.5.rc2 with removed call to clear_local_git_env.

Aside from GIT_CONFIG_PARAMETERS, which this needs, I wonder if we should also let other variables pass through. For example, if the user went out of their way to set GIT_ALTERNATE_OBJECT_DIRECTORIES, shouldn't we also respect that?

The list of variables that is unset by clear_local_git_env is $(git rev-parse --local-env-vars), currently

  GIT_ALTERNATE_OBJECT_DIRECTORIES
  GIT_CONFIG
  GIT_CONFIG_PARAMETERS
  GIT_OBJECT_DIRECTORY
  GIT_DIR
  GIT_WORK_TREE
  GIT_IMPLICIT_WORK_TREE
  GIT_GRAFT_FILE
  GIT_INDEX_FILE
  GIT_NO_REPLACE_OBJECTS
  GIT_PREFIX
-- 
Thomas Rast
tr@thomasrast.ch
Jens Lehmann· Nov 16, 2013, 22:39 UTC · re: Thomas Rast · lore

Re: submodule update and core.askpass

Am 16.11.2013 22:42, schrieb Thomas Rast:
Show 15 quoted lines
> Dmitry Neverov <dmitry.neverov@jetbrains.com> writes:
> 
>> git -c core.askpass=pass.sh clone main-repo
>> cd main-repo
>> git submodule init
>> git submodule sync
>> git -c core.askpass=pass.sh submodule update
>>
>> The last command asks for a password interactively. 
>>
>> I've run bisect, it seems like it started failing from commit
>> be8779f7ac9a3be9aa783df008d59082f4054f67. I've checked: submodule update
>> works fine in 1.8.5.rc2 with removed call to clear_local_git_env.
> 
> Aside from GIT_CONFIG_PARAMETERS, which this needs ...

Yes, if I understand GIT_CONFIG_PARAMETERS correctly we should not clean it as the user explicitly asked us to use that setting.

> ..., I wonder if we
> should also let other variables pass through.  For example, if the user
> went out of their way to set GIT_ALTERNATE_OBJECT_DIRECTORIES, shouldn't
> we also respect that?

Hmm, I'm not so sure. Does the user really want the setting of GIT_ALTERNATE_OBJECT_DIRECTORIES to be honored inside the submodule too or would he want a different setting (including none)? I suspect different users would give different answers. And wouldn't a working GIT_CONFIG_PARAMETERS (or configuring the submodule after the initial clone) be the solution for that?

Show 14 quoted lines
> The list of variables that is unset by clear_local_git_env is $(git
> rev-parse --local-env-vars), currently
> 
>   GIT_ALTERNATE_OBJECT_DIRECTORIES
>   GIT_CONFIG
>   GIT_CONFIG_PARAMETERS
>   GIT_OBJECT_DIRECTORY
>   GIT_DIR
>   GIT_WORK_TREE
>   GIT_IMPLICIT_WORK_TREE
>   GIT_GRAFT_FILE
>   GIT_INDEX_FILE
>   GIT_NO_REPLACE_OBJECTS
>   GIT_PREFIX
Dmitry Neverov· Nov 22, 2013, 12:33 UTC · re: Jens Lehmann · lore

Re: submodule update and core.askpass

BTW, a workaround is to pass a path to askpass script in the GIT_ASKPASS environment variable. Jens Lehmann <Jens.Lehmann@web.de> writes:

Show 48 quoted lines
> Am 16.11.2013 22:42, schrieb Thomas Rast:
>> Dmitry Neverov <dmitry.neverov@jetbrains.com> writes:
>> 
>>> git -c core.askpass=pass.sh clone main-repo
>>> cd main-repo
>>> git submodule init
>>> git submodule sync
>>> git -c core.askpass=pass.sh submodule update
>>>
>>> The last command asks for a password interactively. 
>>>
>>> I've run bisect, it seems like it started failing from commit
>>> be8779f7ac9a3be9aa783df008d59082f4054f67. I've checked: submodule update
>>> works fine in 1.8.5.rc2 with removed call to clear_local_git_env.
>> 
>> Aside from GIT_CONFIG_PARAMETERS, which this needs ...
>
> Yes, if I understand GIT_CONFIG_PARAMETERS correctly we should not
> clean it as the user explicitly asked us to use that setting.
>
>> ..., I wonder if we
>> should also let other variables pass through.  For example, if the user
>> went out of their way to set GIT_ALTERNATE_OBJECT_DIRECTORIES, shouldn't
>> we also respect that?
>
> Hmm, I'm not so sure. Does the user really want the setting of
> GIT_ALTERNATE_OBJECT_DIRECTORIES to be honored inside the submodule
> too or would he want a different setting (including none)? I suspect
> different users would give different answers. And wouldn't a working
> GIT_CONFIG_PARAMETERS (or configuring the submodule after the initial
> clone) be the solution for that?
>
>> The list of variables that is unset by clear_local_git_env is $(git
>> rev-parse --local-env-vars), currently
>> 
>>   GIT_ALTERNATE_OBJECT_DIRECTORIES
>>   GIT_CONFIG
>>   GIT_CONFIG_PARAMETERS
>>   GIT_OBJECT_DIRECTORY
>>   GIT_DIR
>>   GIT_WORK_TREE
>>   GIT_IMPLICIT_WORK_TREE
>>   GIT_GRAFT_FILE
>>   GIT_INDEX_FILE
>>   GIT_NO_REPLACE_OBJECTS
>>   GIT_PREFIX
>
>
-- 
Dmitry Neverov
JetBrains
http://www.jetbrains.com
"Develop with pleasure!"

← back to recent threads