X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=git-submodule.sh;h=0a27232b90456b5471ee64d5dcf9965ad73f28af;hb=6422c6af38747f008ebffc106f9a5799b26091d0;hp=204aab671ef78edc24acff4019a2f40a71a59020;hpb=e46f778968d854d67596f844340dd56d5e2781f2;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"