zsh:git-checkout-worktree: Break if dir is deleted

Break the loop if `$REPO_DIR` does not exist anymore because it was
deleted other ways instead of looping forever as `git worktree remove`
fails on non-existing directories.
This commit is contained in:
2021-07-15 16:01:38 +02:00
parent 93ff4e7da2
commit 79be1cfc71

View File

@@ -393,6 +393,7 @@ git-checkout-worktree() {
REPO_DIR="$TEMP_DIR/$GIT_ROOT" REPO_DIR="$TEMP_DIR/$GIT_ROOT"
git worktree add "$REPO_DIR" "$1" git worktree add "$REPO_DIR" "$1"
[[ -e "$REPO_DIR" ]] || return 1
pushd -q "$REPO_DIR" pushd -q "$REPO_DIR"
# Start subshell # Start subshell
@@ -403,7 +404,7 @@ git-checkout-worktree() {
# Restart the subshell until every issue is resolved and the worktree is # Restart the subshell until every issue is resolved and the worktree is
# removed # removed
until git worktree remove "$REPO_DIR"; do until [[ ! -e "$REPO_DIR" ]] || git worktree remove "$REPO_DIR"; do
pushd -q "$REPO_DIR" pushd -q "$REPO_DIR"
"$SHELL" "$SHELL"
popd -q popd -q