git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* submodule update and core.askpass
@ 2013-11-16 21:24 Dmitry Neverov
  2013-11-16 21:42 ` Thomas Rast
  0 siblings, 1 reply; 4+ messages in thread
From: Dmitry Neverov @ 2013-11-16 21:24 UTC (permalink / raw)
  To: git

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: submodule update and core.askpass
  2013-11-16 21:24 submodule update and core.askpass Dmitry Neverov
@ 2013-11-16 21:42 ` Thomas Rast
  2013-11-16 22:39   ` Jens Lehmann
  0 siblings, 1 reply; 4+ messages in thread
From: Thomas Rast @ 2013-11-16 21:42 UTC (permalink / raw)
  To: Dmitry Neverov; +Cc: git, Daniel Graña, Jens Lehmann

+cc Daniel and Jens

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, 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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: submodule update and core.askpass
  2013-11-16 21:42 ` Thomas Rast
@ 2013-11-16 22:39   ` Jens Lehmann
  2013-11-22 12:33     ` Dmitry Neverov
  0 siblings, 1 reply; 4+ messages in thread
From: Jens Lehmann @ 2013-11-16 22:39 UTC (permalink / raw)
  To: Thomas Rast, Dmitry Neverov; +Cc: git, Daniel Graña

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: submodule update and core.askpass
  2013-11-16 22:39   ` Jens Lehmann
@ 2013-11-22 12:33     ` Dmitry Neverov
  0 siblings, 0 replies; 4+ messages in thread
From: Dmitry Neverov @ 2013-11-22 12:33 UTC (permalink / raw)
  To: Jens Lehmann, Thomas Rast; +Cc: git, Daniel Graña

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

> 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!"

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2013-11-22 12:33 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-11-16 21:24 submodule update and core.askpass Dmitry Neverov
2013-11-16 21:42 ` Thomas Rast
2013-11-16 22:39   ` Jens Lehmann
2013-11-22 12:33     ` Dmitry Neverov

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).