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
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
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
[ -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