From 7e33e38a869989d04d12f2ef160d514041eb01e3 Mon Sep 17 00:00:00 2001 From: Markus Martin Date: Sun, 1 Dec 2013 16:42:33 -0500 Subject: [PATCH] Fix missing blank repository name when cloning If the repository path given to 'vcsh clone' contains a trailing slash, the resulting cloned directory will be '.git' and vcsh will not recognize the cloned repository by name. This change ensures that a trailing slash will be stripped and the repository name will be populated. The previous faulty behavior is due to the custom implementation of the basename command first introduced in 794f0aac. --- vcsh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/vcsh b/vcsh index 3924009..98b1e6b 100755 --- a/vcsh +++ b/vcsh @@ -18,7 +18,8 @@ basename() { # Implemented in shell to avoid spawning another process local file - file="${1##*/}" + file="${1%/}" + file="${file##*/}" [ -z "$2" ] || file="${file%$2}" echo "$file" } @@ -419,6 +420,7 @@ if [ "$VCSH_COMMAND" = 'clone' ]; then [ -z "$2" ] && fatal "$VCSH_COMMAND: please specify a remote" 1 GIT_REMOTE="$2" [ -n "$3" ] && VCSH_REPO_NAME="$3" || VCSH_REPO_NAME=$(basename "$GIT_REMOTE" .git) + [ -z "$VCSH_REPO_NAME" ] && fatal "$VCSH_COMMAND: could not determine repository name" 1 export VCSH_REPO_NAME export GIT_DIR="$VCSH_REPO_D/$VCSH_REPO_NAME.git" elif [ "$VCSH_COMMAND" = 'version' ]; then -- 2.39.2