Browse Source

Merge branch 'ps/submodule-sanitize-path-upon-add' into maint

"git submodule add" failed to squash "path/to/././submodule" to
"path/to/submodule".

* ps/submodule-sanitize-path-upon-add:
  git-submodule.sh: fix '/././' path normalization
maint
Junio C Hamano 10 years ago
parent
commit
3630be2749
  1. 2
      git-submodule.sh
  2. 17
      t/t7400-submodule-basic.sh

2
git-submodule.sh

@ -423,7 +423,7 @@ cmd_add()
sed -e ' sed -e '
s|//*|/|g s|//*|/|g
s|^\(\./\)*|| s|^\(\./\)*||
s|/\./|/|g s|/\(\./\)*|/|g
:start :start
s|\([^/]*\)/\.\./|| s|\([^/]*\)/\.\./||
tstart tstart

17
t/t7400-submodule-basic.sh

@ -171,6 +171,23 @@ test_expect_success 'submodule add with ./ in path' '
test_cmp empty untracked 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' ' test_expect_success 'submodule add with // in path' '
echo "refs/heads/master" >expect && echo "refs/heads/master" >expect &&
>empty && >empty &&

Loading…
Cancel
Save