From 8fed19f72cd2d48787d5d85b3271e511856dad6d Mon Sep 17 00:00:00 2001 From: Jeremy McClure Date: Sat, 1 Aug 2026 16:45:16 -0400 Subject: [PATCH] fix: hard reset to remote in bootstrap, add cd and timeout --- bootstrap.sh | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/bootstrap.sh b/bootstrap.sh index 53d605a..dd99310 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -146,15 +146,17 @@ update_repo() { local TARGET_DIR="$HOME/.config/dotstate/storage" if [[ -d "$TARGET_DIR/.git" ]]; then + cd "$TARGET_DIR" || return 0 local remote_sha local_sha - remote_sha=$(git ls-remote "$REPO_URL" HEAD | awk '{print $1}') - local_sha=$(git -C "$TARGET_DIR" rev-parse HEAD) + remote_sha=$(timeout 5 git ls-remote "$REPO_URL" HEAD | awk '{print $1}') + [[ -z "$remote_sha" ]] && return 0 + local_sha=$(git rev-parse HEAD) if [[ "$remote_sha" == "$local_sha" ]]; then info "Repository up to date" return 0 fi info "Repository out of date. Pulling updates..." - git -C "$TARGET_DIR" pull &>/dev/null + git fetch origin && git reset --hard origin/master && git clean -fd &>/dev/null else info "Repository not found. Cloning..." git clone --depth=1 "$REPO_URL" "$TARGET_DIR" &>/dev/null