projects
/
config
/
vcsh.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
populate-fully.sh: don't enter the repository if updating working tree fails
[config/vcsh.git]
/
.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
387ec21
..
33c1fb0
100755
(executable)
--- a/
.config/vcsh/hooks-available/populate-sparsely.sh
+++ b/
.config/vcsh/hooks-available/populate-sparsely.sh
@@
-5,6
+5,9
@@
set -e
# Only the same instance of vcsh that had the working tree fully populated is
# allowed to repopulate it sparsely.
LOCKDIR=/run/lock/vcsh
# 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")
[ -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"
: "${XDG_CONFIG_HOME:="$HOME/.config"}"
. "$XDG_CONFIG_HOME/vcsh/hooks-available/sparse-checkout.sh"
-git read-tree -mu HEAD
+
+# 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"
# Unlock the working tree.
rm -rf "$LOCKDIR"