Merge branch 'mh/doc-credential-url-prefix' into jch

Doc update to describe a feature that has already been implemented.

* mh/doc-credential-url-prefix:
  docs/gitcredentials: describe URL prefix matching
seen
Junio C Hamano 2025-10-06 10:25:21 -07:00
commit af1c302b8d
2 changed files with 22 additions and 12 deletions

View File

@ -150,9 +150,8 @@ pattern in the config file. For example, if you have this in your config file:
username = foo username = foo
-------------------------------------- --------------------------------------


then we will match: both protocols are the same, both hosts are the same, and then we will match: both protocols are the same and both hosts are the same.
the "pattern" URL does not care about the path component at all. However, this However, this context would not match:
context would not match:


-------------------------------------- --------------------------------------
[credential "https://kernel.org"] [credential "https://kernel.org"]
@ -166,11 +165,11 @@ match: Git compares the protocols exactly. However, you may use wildcards in
the domain name and other pattern matching techniques as with the `http.<URL>.*` the domain name and other pattern matching techniques as with the `http.<URL>.*`
options. options.


If the "pattern" URL does include a path component, then this too must match If the "pattern" URL does include a path component, then this must match
exactly: the context `https://example.com/bar/baz.git` will match a config as a prefix path: the context `https://example.com/bar` will match a config
entry for `https://example.com/bar/baz.git` (in addition to matching the config entry for `https://example.com/bar/baz.git` but will not match a config entry for
entry for `https://example.com`) but will not match a config entry for `https://example.com/other/repo.git` or `https://example.com/barry/repo.git`
`https://example.com/bar`. (even though it is a string prefix).




CONFIGURATION OPTIONS CONFIGURATION OPTIONS

View File

@ -991,18 +991,24 @@ test_expect_success 'url parser not confused by encoded markers' '


test_expect_success 'credential config with partial URLs' ' test_expect_success 'credential config with partial URLs' '
echo "echo password=yep" | write_script git-credential-yep && echo "echo password=yep" | write_script git-credential-yep &&
test_write_lines url=https://user@example.com/repo.git >stdin && test_write_lines url=https://user@example.com/org/repo.git >stdin &&
for partial in \ for partial in \
example.com \ example.com \
example.com/org/repo.git \
user@example.com \ user@example.com \
user@example.com/org/repo.git \
https:// \ https:// \
https://example.com \ https://example.com \
https://example.com/ \ https://example.com/ \
https://example.com/org \
https://example.com/org/ \
https://example.com/org/repo.git \
https://user@example.com \ https://user@example.com \
https://user@example.com/ \ https://user@example.com/ \
https://example.com/repo.git \ https://user@example.com/org \
https://user@example.com/repo.git \ https://user@example.com/org/ \
/repo.git https://user@example.com/org/repo.git \
/org/repo.git
do do
git -c credential.$partial.helper=yep \ git -c credential.$partial.helper=yep \
credential fill <stdin >stdout && credential fill <stdin >stdout &&
@ -1012,7 +1018,12 @@ test_expect_success 'credential config with partial URLs' '


for partial in \ for partial in \
dont.use.this \ dont.use.this \
example.com/o \
user@example.com/o \
http:// \ http:// \
https://example.com/o \
https://user@example.com/o \
/o \
/repo /repo
do do
git -c credential.$partial.helper=yep \ git -c credential.$partial.helper=yep \