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

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

--------------------------------------
[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>.*`
options.

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


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' '
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 \
example.com \
example.com/org/repo.git \
user@example.com \
user@example.com/org/repo.git \
https:// \
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://example.com/repo.git \
https://user@example.com/repo.git \
/repo.git
https://user@example.com/org \
https://user@example.com/org/ \
https://user@example.com/org/repo.git \
/org/repo.git
do
git -c credential.$partial.helper=yep \
credential fill <stdin >stdout &&
@ -1012,7 +1018,12 @@ test_expect_success 'credential config with partial URLs' '

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