X-Git-Url: https://git.ao2.it/config/vcsh.git/blobdiff_plain/8bdae58f5b9906d57e5d4384e5fda1b93cef6aac..f56cf1fee2d7d4463fda8664aec2a2d6e6d5458a:/.config/vcsh/hooks-available/populate-fully.sh?ds=sidebyside diff --git a/.config/vcsh/hooks-available/populate-fully.sh b/.config/vcsh/hooks-available/populate-fully.sh index 0439174..6af9ebd 100755 --- a/.config/vcsh/hooks-available/populate-fully.sh +++ b/.config/vcsh/hooks-available/populate-fully.sh @@ -15,7 +15,7 @@ then echo "An instance of vcsh already entered a repository." 1>&2 # Exit vcsh if the process which keeps the lock is still alive. - if kill -0 $(cat "$LOCKDIR/pid") 2>/dev/null; + if kill -0 "$(cat "$LOCKDIR/pid")" 2>/dev/null; then # Kill the parent process instead of just bailing out because vcsh does # not catch the hook exit value. @@ -40,6 +40,15 @@ then git config core.sparseCheckout true rm -f "$GIT_DIR/info/sparse-checkout" echo "/*" > "$GIT_DIR/info/sparse-checkout" - git read-tree -mu HEAD + RET=0 + git read-tree -mu HEAD || RET=$? git config core.sparseCheckout false + + # if updating the working tree failed exit the whole vcsh process to prevent + # entering the repository. + if [ $RET -ne 0 ]; + then + echo "Fix the problems before entering the repository." 1>&2 + kill -- -$PPID + fi fi