merge(3p/git): Merge git subtree at v2.29.2
This also bumps the stable nixpkgs to 20.09 as of 2020-11-21, because there is some breakage in the git build related to the netrc credentials helper which someone has taken care of in nixpkgs. The stable channel is not used for anything other than git, so this should be fine. Change-Id: I3575a19dab09e1e9556cf8231d717de9890484fb
This commit is contained in:
parent
082c006c04
commit
f4609b896f
1485 changed files with 241535 additions and 109418 deletions
68
third_party/git/t/t5550-http-fetch-dumb.sh
vendored
68
third_party/git/t/t5550-http-fetch-dumb.sh
vendored
|
|
@ -50,6 +50,24 @@ test_expect_success 'create password-protected repository' '
|
|||
"$HTTPD_DOCUMENT_ROOT_PATH/auth/dumb/repo.git"
|
||||
'
|
||||
|
||||
test_expect_success 'create empty remote repository' '
|
||||
git init --bare "$HTTPD_DOCUMENT_ROOT_PATH/empty.git" &&
|
||||
(cd "$HTTPD_DOCUMENT_ROOT_PATH/empty.git" &&
|
||||
mkdir -p hooks &&
|
||||
write_script "hooks/post-update" <<-\EOF &&
|
||||
exec git update-server-info
|
||||
EOF
|
||||
hooks/post-update
|
||||
)
|
||||
'
|
||||
|
||||
test_expect_success 'empty dumb HTTP repository has default hash algorithm' '
|
||||
test_when_finished "rm -fr clone-empty" &&
|
||||
git clone $HTTPD_URL/dumb/empty.git clone-empty &&
|
||||
git -C clone-empty rev-parse --show-object-format >empty-format &&
|
||||
test "$(cat empty-format)" = "$(test_oid algo)"
|
||||
'
|
||||
|
||||
setup_askpass_helper
|
||||
|
||||
test_expect_success 'cloning password-protected repository can fail' '
|
||||
|
|
@ -199,6 +217,28 @@ test_expect_success 'fetch packed objects' '
|
|||
git clone $HTTPD_URL/dumb/repo_pack.git
|
||||
'
|
||||
|
||||
test_expect_success 'http-fetch --packfile' '
|
||||
# Arbitrary hash. Use rev-parse so that we get one of the correct
|
||||
# length.
|
||||
ARBITRARY=$(git -C "$HTTPD_DOCUMENT_ROOT_PATH"/repo_pack.git rev-parse HEAD) &&
|
||||
|
||||
git init packfileclient &&
|
||||
p=$(cd "$HTTPD_DOCUMENT_ROOT_PATH"/repo_pack.git && ls objects/pack/pack-*.pack) &&
|
||||
git -C packfileclient http-fetch --packfile=$ARBITRARY "$HTTPD_URL"/dumb/repo_pack.git/$p >out &&
|
||||
|
||||
grep "^keep.[0-9a-f]\{16,\}$" out &&
|
||||
cut -c6- out >packhash &&
|
||||
|
||||
# Ensure that the expected files are generated
|
||||
test -e "packfileclient/.git/objects/pack/pack-$(cat packhash).pack" &&
|
||||
test -e "packfileclient/.git/objects/pack/pack-$(cat packhash).idx" &&
|
||||
test -e "packfileclient/.git/objects/pack/pack-$(cat packhash).keep" &&
|
||||
|
||||
# Ensure that it has the HEAD of repo_pack, at least
|
||||
HASH=$(git -C "$HTTPD_DOCUMENT_ROOT_PATH"/repo_pack.git rev-parse HEAD) &&
|
||||
git -C packfileclient cat-file -e "$HASH"
|
||||
'
|
||||
|
||||
test_expect_success 'fetch notices corrupt pack' '
|
||||
cp -R "$HTTPD_DOCUMENT_ROOT_PATH"/repo_pack.git "$HTTPD_DOCUMENT_ROOT_PATH"/repo_bad1.git &&
|
||||
(cd "$HTTPD_DOCUMENT_ROOT_PATH"/repo_bad1.git &&
|
||||
|
|
@ -214,6 +254,14 @@ test_expect_success 'fetch notices corrupt pack' '
|
|||
)
|
||||
'
|
||||
|
||||
test_expect_success 'http-fetch --packfile with corrupt pack' '
|
||||
rm -rf packfileclient &&
|
||||
git init packfileclient &&
|
||||
p=$(cd "$HTTPD_DOCUMENT_ROOT_PATH"/repo_bad1.git && ls objects/pack/pack-*.pack) &&
|
||||
test_must_fail git -C packfileclient http-fetch --packfile \
|
||||
"$HTTPD_URL"/dumb/repo_bad1.git/$p
|
||||
'
|
||||
|
||||
test_expect_success 'fetch notices corrupt idx' '
|
||||
cp -R "$HTTPD_DOCUMENT_ROOT_PATH"/repo_pack.git "$HTTPD_DOCUMENT_ROOT_PATH"/repo_bad2.git &&
|
||||
(cd "$HTTPD_DOCUMENT_ROOT_PATH"/repo_bad2.git &&
|
||||
|
|
@ -248,9 +296,7 @@ test_expect_success 'fetch can handle previously-fetched .idx files' '
|
|||
'
|
||||
|
||||
test_expect_success 'did not use upload-pack service' '
|
||||
test_might_fail grep '/git-upload-pack' <"$HTTPD_ROOT_PATH"/access.log >act &&
|
||||
: >exp &&
|
||||
test_cmp exp act
|
||||
! grep "/git-upload-pack" "$HTTPD_ROOT_PATH/access.log"
|
||||
'
|
||||
|
||||
test_expect_success 'git client shows text/plain errors' '
|
||||
|
|
@ -321,11 +367,17 @@ test_expect_success 'git client does not send an empty Accept-Language' '
|
|||
'
|
||||
|
||||
test_expect_success 'remote-http complains cleanly about malformed urls' '
|
||||
# do not actually issue "list" or other commands, as we do not
|
||||
# want to rely on what curl would actually do with such a broken
|
||||
# URL. This is just about making sure we do not segfault during
|
||||
# initialization.
|
||||
test_must_fail git remote-http http::/example.com/repo.git
|
||||
test_must_fail git remote-http http::/example.com/repo.git 2>stderr &&
|
||||
test_i18ngrep "url has no scheme" stderr
|
||||
'
|
||||
|
||||
# NEEDSWORK: Writing commands to git-remote-curl can race against the latter
|
||||
# erroring out, producing SIGPIPE. Remove "ok=sigpipe" once transport-helper has
|
||||
# learned to handle early remote helper failures more cleanly.
|
||||
test_expect_success 'remote-http complains cleanly about empty scheme' '
|
||||
test_must_fail ok=sigpipe git ls-remote \
|
||||
http::${HTTPD_URL#http}/dumb/repo.git 2>stderr &&
|
||||
test_i18ngrep "url has no scheme" stderr
|
||||
'
|
||||
|
||||
test_expect_success 'redirects can be forbidden/allowed' '
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue