From 8196e728955a084303e99affff2ebc1120112516 Mon Sep 17 00:00:00 2001 From: Patrick Steinhardt Date: Fri, 30 Jan 2015 16:14:03 +0100 Subject: [PATCH] git-submodule.sh: fix '/././' path normalization When we add a new submodule the path of the submodule is being normalized. We fail to normalize multiple adjacent '/./', though. Thus 'path/to/././submodule' will become 'path/to/./submodule' where it should be 'path/to/submodule' instead. Signed-off-by: Patrick Steinhardt Acked-by: Jens Lehmann Signed-off-by: Junio C Hamano --- git-submodule.sh | 2 +- t/t7400-submodule-basic.sh | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/git-submodule.sh b/git-submodule.sh index 66f5f752c5..6bf85f5afe 100755 --- a/git-submodule.sh +++ b/git-submodule.sh @@ -420,7 +420,7 @@ cmd_add() sed -e ' s|//*|/|g s|^\(\./\)*|| - s|/\./|/|g + s|/\(\./\)*|/|g :start s|\([^/]*\)/\.\./|| tstart diff --git a/t/t7400-submodule-basic.sh b/t/t7400-submodule-basic.sh index c28e8d8ada..4004d12668 100755 --- a/t/t7400-submodule-basic.sh +++ b/t/t7400-submodule-basic.sh @@ -171,6 +171,23 @@ test_expect_success 'submodule add with ./ in path' ' test_cmp empty untracked ' +test_expect_success 'submodule add with /././ in path' ' + echo "refs/heads/master" >expect && + >empty && + + ( + cd addtest && + git submodule add "$submodurl" dotslashdotsubmod/././frotz/./ && + git submodule init + ) && + + rm -f heads head untracked && + inspect addtest/dotslashdotsubmod/frotz ../../.. && + test_cmp expect heads && + test_cmp expect head && + test_cmp empty untracked +' + test_expect_success 'submodule add with // in path' ' echo "refs/heads/master" >expect && >empty && -- GitLab