X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;ds=sidebyside;f=git-submodule.sh;h=0a27232b90456b5471ee64d5dcf9965ad73f28af;hb=1973b0d790155b5d8a32a6f7401116fad2205721;hp=204aab671ef78edc24acff4019a2f40a71a59020;hpb=c067e1e2fc27a63dacc39fcaf37103ed5bcd4cf2;p=git.git diff --git a/git-submodule.sh b/git-submodule.sh index 204aab671..0a27232b9 100755 --- a/git-submodule.sh +++ b/git-submodule.sh @@ -167,9 +167,18 @@ cmd_add() ;; esac - # strip trailing slashes from path - path=$(echo "$path" | sed -e 's|/*$||') - + # normalize path: + # multiple //; leading ./; /./; /../; trailing / + path=$(printf '%s/\n' "$path" | + sed -e ' + s|//*|/|g + s|^\(\./\)*|| + s|/\./|/|g + :start + s|\([^/]*\)/\.\./|| + tstart + s|/*$|| + ') git ls-files --error-unmatch "$path" > /dev/null 2>&1 && die "'$path' already exists in the index"