projects
/
config
/
vcsh.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
hooks: set up sparse checkout after cloning the vcsh repository
[config/vcsh.git]
/
.config
/
vcsh
/
hooks-available
/
populate-fully.sh
diff --git
a/.config/vcsh/hooks-available/populate-fully.sh
b/.config/vcsh/hooks-available/populate-fully.sh
index
0439174
..
6af9ebd
100755
(executable)
--- 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.
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.
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 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
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
fi