diff options
author | Junio C Hamano <gitster@pobox.com> | 2018-09-27 18:45:01 (GMT) |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-09-27 18:45:01 (GMT) |
commit | 44f87dac99574a8073ffb1ba8b10bd4d3945f61b (patch) | |
tree | 75d621c381b5af0d9312d69ff6a7d96c9f0cf676 /t/t7416-submodule-dash-url.sh | |
parent | 53f9a3e157dbbc901a02ac2c73346d375e24978c (diff) | |
parent | 6e9e91e9cae74cd7feb9300563d40361b2b17dd2 (diff) | |
download | git-44f87dac99574a8073ffb1ba8b10bd4d3945f61b.zip git-44f87dac99574a8073ffb1ba8b10bd4d3945f61b.tar.gz git-44f87dac99574a8073ffb1ba8b10bd4d3945f61b.tar.bz2 |
Sync with 2.17.2
* maint-2.17:
Git 2.17.2
fsck: detect submodule paths starting with dash
fsck: detect submodule urls starting with dash
Git 2.16.5
Git 2.15.3
Git 2.14.5
submodule-config: ban submodule paths that start with a dash
submodule-config: ban submodule urls that start with dash
submodule--helper: use "--" to signal end of clone options
Diffstat (limited to 't/t7416-submodule-dash-url.sh')
-rwxr-xr-x | t/t7416-submodule-dash-url.sh | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/t/t7416-submodule-dash-url.sh b/t/t7416-submodule-dash-url.sh new file mode 100755 index 0000000..1cd2c1c --- /dev/null +++ b/t/t7416-submodule-dash-url.sh @@ -0,0 +1,49 @@ +#!/bin/sh + +test_description='check handling of .gitmodule url with dash' +. ./test-lib.sh + +test_expect_success 'create submodule with protected dash in url' ' + git init upstream && + git -C upstream commit --allow-empty -m base && + mv upstream ./-upstream && + git submodule add ./-upstream sub && + git add sub .gitmodules && + git commit -m submodule +' + +test_expect_success 'clone can recurse submodule' ' + test_when_finished "rm -rf dst" && + git clone --recurse-submodules . dst && + echo base >expect && + git -C dst/sub log -1 --format=%s >actual && + test_cmp expect actual +' + +test_expect_success 'fsck accepts protected dash' ' + test_when_finished "rm -rf dst" && + git init --bare dst && + git -C dst config transfer.fsckObjects true && + git push dst HEAD +' + +test_expect_success 'remove ./ protection from .gitmodules url' ' + perl -i -pe "s{\./}{}" .gitmodules && + git commit -am "drop protection" +' + +test_expect_success 'clone rejects unprotected dash' ' + test_when_finished "rm -rf dst" && + test_must_fail git clone --recurse-submodules . dst 2>err && + test_i18ngrep ignoring err +' + +test_expect_success 'fsck rejects unprotected dash' ' + test_when_finished "rm -rf dst" && + git init --bare dst && + git -C dst config transfer.fsckObjects true && + test_must_fail git push dst HEAD 2>err && + grep gitmodulesUrl err +' + +test_done |