Merge branch 'jk/credential-clear-config'
The credential.helper configuration variable is cumulative and there is no good way to override it from the command line. As a special case, giving an empty string as its value now serves as the signal to clear the values specified in various files. * jk/credential-clear-config: credential: let empty credential specs reset helper list
This commit is contained in:
commit
1b68962b29
@ -1113,8 +1113,9 @@ commit.template::
|
|||||||
credential.helper::
|
credential.helper::
|
||||||
Specify an external helper to be called when a username or
|
Specify an external helper to be called when a username or
|
||||||
password credential is needed; the helper may consult external
|
password credential is needed; the helper may consult external
|
||||||
storage to avoid prompting the user for the credentials. See
|
storage to avoid prompting the user for the credentials. Note
|
||||||
linkgit:gitcredentials[7] for details.
|
that multiple helpers may be defined. See linkgit:gitcredentials[7]
|
||||||
|
for details.
|
||||||
|
|
||||||
credential.useHttpPath::
|
credential.useHttpPath::
|
||||||
When acquiring credentials, consider the "path" component of an http
|
When acquiring credentials, consider the "path" component of an http
|
||||||
|
@ -106,6 +106,11 @@ variable, each helper will be tried in turn, and may provide a username,
|
|||||||
password, or nothing. Once Git has acquired both a username and a
|
password, or nothing. Once Git has acquired both a username and a
|
||||||
password, no more helpers will be tried.
|
password, no more helpers will be tried.
|
||||||
|
|
||||||
|
If `credential.helper` is configured to the empty string, this resets
|
||||||
|
the helper list to empty (so you may override a helper set by a
|
||||||
|
lower-priority config file by configuring the empty-string helper,
|
||||||
|
followed by whatever set of helpers you would like).
|
||||||
|
|
||||||
|
|
||||||
CREDENTIAL CONTEXTS
|
CREDENTIAL CONTEXTS
|
||||||
-------------------
|
-------------------
|
||||||
|
@ -63,9 +63,12 @@ static int credential_config_callback(const char *var, const char *value,
|
|||||||
key = dot + 1;
|
key = dot + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!strcmp(key, "helper"))
|
if (!strcmp(key, "helper")) {
|
||||||
|
if (*value)
|
||||||
string_list_append(&c->helpers, value);
|
string_list_append(&c->helpers, value);
|
||||||
else if (!strcmp(key, "username")) {
|
else
|
||||||
|
string_list_clear(&c->helpers, 0);
|
||||||
|
} else if (!strcmp(key, "username")) {
|
||||||
if (!c->username)
|
if (!c->username)
|
||||||
c->username = xstrdup(value);
|
c->username = xstrdup(value);
|
||||||
}
|
}
|
||||||
|
@ -298,4 +298,15 @@ test_expect_success 'helpers can abort the process' '
|
|||||||
test_cmp expect stdout
|
test_cmp expect stdout
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'empty helper spec resets helper list' '
|
||||||
|
test_config credential.helper "verbatim file file" &&
|
||||||
|
check fill "" "verbatim cmdline cmdline" <<-\EOF
|
||||||
|
--
|
||||||
|
username=cmdline
|
||||||
|
password=cmdline
|
||||||
|
--
|
||||||
|
verbatim: get
|
||||||
|
EOF
|
||||||
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
Loading…
x
Reference in New Issue
Block a user