Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Passing configuration parameter (git -c or git --config-env=) - set_persistent_git_options() (mostly) works #1649

Unanswered
linde12 asked this question in Q&A
Discussion options

Hi!

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:

repo = Repo.init(path)
remote = repo.create_head(...)
...
remote.fetch(ref, c=\credential.helper=""')

because that essentially does:

git fetch -c credential.helper=""

but git-fetch doesn't know about any -c flag, only git does.

Is this even possible with gitpython? Thanks!

You must be logged in to vote

Replies: 4 comments

Comment options

I see Repo.clone has multi_options, but i want to use these set config-env for git-fetch too

You must be logged in to vote
0 replies
Comment options

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
...
for submodule in repo.submodules:
 submodule.update(...) # not OK

is it clashing with clone_multi_options perhpas?

You must be logged in to vote
0 replies
Comment options

Thanks for reporting and sharing the workaround.

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.

You must be logged in to vote
0 replies
Comment options

@Byron

Thanks for the quick response!

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 😃

You must be logged in to vote
0 replies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants
Converted from issue

This discussion was converted from issue #1604 on September 07, 2023 06:22.

AltStyle によって変換されたページ (->オリジナル) /