X-Git-Url: https://git.madduck.net/code/vcsh.git/blobdiff_plain/d2617e58f540f3c4ee43149b32a233cf55371029..a6c9dc49e9e9749b7dd3b659934193ca61eccae9:/vcsh diff --git a/vcsh b/vcsh index e77ca08..543a75e 100755 --- a/vcsh +++ b/vcsh @@ -162,7 +162,7 @@ clone() { You should add files to your new repository." exit fi - GIT_VERSION_MAJOR=$(git --version | sed -n 's/.* \([0-9]\)\..*/\1/p' ) + GIT_VERSION_MAJOR=$(git --version | sed -n 's/.* \([0-9]\+\)\..*/\1/p' ) if [ 1 -lt "$GIT_VERSION_MAJOR" ];then git fetch origin "$VCSH_BRANCH" else @@ -476,14 +476,21 @@ write_gitignore() { use cd "$VCSH_BASE" || fatal "could not enter '$VCSH_BASE'" 11 + local GIT_VERSION="$(git --version)" + local GIT_VERSION_MAJOR=$(echo $GIT_VERSION | sed -n 's/.* \([0-9]\+\)\..*/\1/p') + local GIT_VERSION_MINOR=$(echo $GIT_VERSION | sed -n 's/.* \([0-9]\+\)\.\([0-9]\+\)\..*/\2/p') OLDIFS=$IFS IFS=$(printf '\n\t') gitignores=$(for file in $(git ls-files); do - while true; do - echo "$file"; new=${file%/*} - [ x"$file" = x"$new" ] && break - file=$new - done; + if [ $GIT_VERSION_MAJOR -ge 2 -a $GIT_VERSION_MINOR -ge 7 ]; then + echo "$file"; + else + while true; do + echo "$file"; new=${file%/*} + [ x"$file" = x"$new" ] && break + file=$new + done; + fi done | sort -u) # Contrary to GNU mktemp, mktemp on BSD/OSX requires a template for temp files