You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Passing configuration parameter (git -c or git --config-env=) - set_persistent_git_options() (mostly) works #1604
I want to override system wide and global git configs for all commands i'm running in this repo in order to set credential.helper to nothing (dont cache or use system store to save my passwords)
This can be done with git like so:
git -c credential.helper="" fetch
but, if possible, i'd like to use gitpythons Repo to fetch my do my fetching, but i can't find a way to pass the -c flag to git itself and not git-fetch. E.g. doing the following doesn't work because the flag is passed to git-fetch:
A colleague suggested set_persistent_git_options and it does indeed seem like what i want, but it does not work with submodules :-/
e.g.
repo=Repo(..)
remote=repo.create_head(...)
remote.fetch(ref) # OK my `-c core.askpass=...` works here
...
forsubmoduleinrepo.submodules:
submodule.update(...) # not OK
Maybe submodules have their own copy of the git command which is why it isn't present there? If so, is there a way to use set_persistent_git_options on each submodule?
Of course, this might be a genuine bug, especially related to submodules everything is possible.
Yeah this is what i thought as well, that submodules dont share the same git instance with the repo.
I didn't find a way to call set_persistent_git_options for a submodule, alas i didn't dig too deep. For now i reverted to using git.execute and passing the flags myself, but id rather use the Repo construct if at all possible 😃
Activity
[-]Passing configuration parameter (`git -c` or `git --config-env=`[/-][+]Passing configuration parameter (`git -c` or `git --config-env=`)[/+]linde12 commentedon Jul 6, 2023
I see
Repo.clonehasmulti_options, but i want to use these set config-env forgit-fetchtoolinde12 commentedon Jul 6, 2023
A colleague suggested
set_persistent_git_optionsand it does indeed seem like what i want, but it does not work with submodules :-/e.g.
is it clashing with
clone_multi_optionsperhpas?Byron commentedon Jul 6, 2023
Thanks for reporting and sharing the workaround.
Maybe submodules have their own copy of the
gitcommand which is why it isn't present there? If so, is there a way to useset_persistent_git_optionson each submodule?Of course, this might be a genuine bug, especially related to submodules everything is possible.
[-]Passing configuration parameter (`git -c` or `git --config-env=`)[/-][+]Passing configuration parameter (`git -c` or `git --config-env=`) - `set_persistent_git_options()` works[/+][-]Passing configuration parameter (`git -c` or `git --config-env=`) - `set_persistent_git_options()` works[/-][+]Passing configuration parameter (`git -c` or `git --config-env=`) - `set_persistent_git_options()` (mostly) works[/+]linde12 commentedon Jul 6, 2023
@Byron
Thanks for the quick response!
Yeah this is what i thought as well, that submodules dont share the same
gitinstance with the repo.I didn't find a way to call
set_persistent_git_optionsfor a submodule, alas i didn't dig too deep. For now i reverted to usinggit.executeand passing the flags myself, but id rather use theRepoconstruct if at all possible 😃