hooks: rename sparse-checkout.sh to enable-sparse-checkout.sh
[config/vcsh.git] / .config / vcsh / hooks-available / populate-sparsely.sh
index 53d2b3a..937122a 100755 (executable)
@@ -15,8 +15,17 @@ LOCKPID=$(cat "$LOCKDIR/pid")
 [ "$LOCKPID" = $PPID ] || { echo "Repository entered from another vcsh instance. Aborting." 1>&2; exit 1; }
 
 : "${XDG_CONFIG_HOME:="$HOME/.config"}"
-. "$XDG_CONFIG_HOME/vcsh/hooks-available/sparse-checkout.sh"
-git read-tree -mu HEAD
+
+# shellcheck source=/dev/null
+. "$XDG_CONFIG_HOME/vcsh/hooks-available/enable-sparse-checkout.sh"
+
+# 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"