X-Git-Url: https://git.madduck.net/code/vcsh.git/blobdiff_plain/b32b489829142ea899ed50913fcff931ef051c27..7e33e38a869989d04d12f2ef160d514041eb01e3:/vcsh diff --git a/vcsh b/vcsh index ab58f3a..98b1e6b 100755 --- a/vcsh +++ b/vcsh @@ -18,13 +18,14 @@ basename() { # Implemented in shell to avoid spawning another process local file - file="${1##*/}" + file="${1%/}" + file="${file##*/}" [ -z "$2" ] || file="${file%$2}" echo "$file" } SELF=$(basename $0) -VERSION='1.20130909' +VERSION='1.20130909.git-HEAD' fatal() { echo "$SELF: fatal: $1" >&2 @@ -159,11 +160,11 @@ clone() { for object in $(git ls-tree -r origin/master | awk '{print $4}'); do [ -e "$object" ] && error "'$object' exists." && - VCSH_CONFLICT=1; + VCSH_CONFLICT=1 done [ "$VCSH_CONFLICT" = '1' ] && fatal "will stop after fetching and not try to merge! - Once this situation has been resolved, run 'vcsh run $VCSH_REPO_NAME git pull' to finish cloning.\n" 17 + Once this situation has been resolved, run 'vcsh run $VCSH_REPO_NAME git pull' to finish cloning." 17 git merge origin/master hook post-clone retire @@ -390,6 +391,8 @@ write_gitignore() { fatal "could not move '$tempfile' to '$VCSH_BASE/.gitignore.d/$VCSH_REPO_NAME'" 53 } +debug `git version` + if [ ! "x$VCSH_GITIGNORE" = 'xexact' ] && [ ! "x$VCSH_GITIGNORE" = 'xnone' ] && [ ! "x$VCSH_GITIGNORE" = 'xrecursive' ]; then fatal "'\$VCSH_GITIGNORE' must equal 'exact', 'none', or 'recursive'" 1 fi @@ -417,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