Skip to content

Commit

Permalink
git-submodule.sh: fix '/././' path normalization
Browse files Browse the repository at this point in the history
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 <ps@pks.im>
Acked-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Patrick Steinhardt authored and Junio C Hamano committed Feb 2, 2015
1 parent 3d8a54e commit 8196e72
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 1 deletion.
2 changes: 1 addition & 1 deletion git-submodule.sh
Original file line number Diff line number Diff line change
Expand Up @@ -420,7 +420,7 @@ cmd_add()
sed -e '
s|//*|/|g
s|^\(\./\)*||
s|/\./|/|g
s|/\(\./\)*|/|g
:start
s|\([^/]*\)/\.\./||
tstart
Expand Down
17 changes: 17 additions & 0 deletions t/t7400-submodule-basic.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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 &&
Expand Down

0 comments on commit 8196e72

Please sign in to comment.