X-Git-Url: https://git.ao2.it/config/vcsh.git/blobdiff_plain/d8252a90e24b76f14fabfeb0a2a6d2c281dd4d6e..8bdae58f5b9906d57e5d4384e5fda1b93cef6aac:/.config/vcsh/hooks-available/populate-sparsely.sh diff --git a/.config/vcsh/hooks-available/populate-sparsely.sh b/.config/vcsh/hooks-available/populate-sparsely.sh index 755092b..33c1fb0 100755 --- a/.config/vcsh/hooks-available/populate-sparsely.sh +++ b/.config/vcsh/hooks-available/populate-sparsely.sh @@ -2,9 +2,12 @@ set -e -# Only the same instance of vcsh that had the work dir fully populated is +# Only the same instance of vcsh that had the working tree fully populated is # allowed to repopulate it sparsely. LOCKDIR=/run/lock/vcsh + +# If LOCKDIR does not exist it means that the lock is not active so there's no +# need to do anything. [ -d "$LOCKDIR" ] || exit 0 LOCKPID=$(cat "$LOCKDIR/pid") @@ -13,7 +16,14 @@ LOCKPID=$(cat "$LOCKDIR/pid") : "${XDG_CONFIG_HOME:="$HOME/.config"}" . "$XDG_CONFIG_HOME/vcsh/hooks-available/sparse-checkout.sh" -git read-tree -mu HEAD -# Unlock the work dir. +# Verify if the current branch is valid before updating the working tree. +# This avoids errors with empty repositories which would only confuse the +# user. +if git rev-parse --verify HEAD >/dev/null 2>&1; +then + git read-tree -mu HEAD +fi + +# Unlock the working tree. rm -rf "$LOCKDIR"