From d92e13143f9a32fea65482da8b19540d6abcce97 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Wed, 17 Sep 2025 10:43:52 +0200 Subject: [PATCH] Updates --- bin/omarchy-menu | 4 ++-- bin/omarchy-update-branch | 21 +++++++++++++++++---- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/bin/omarchy-menu b/bin/omarchy-menu index 352477d..3ef4b20 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -398,8 +398,8 @@ show_update_menu() { show_update_branch_menu() { case $(menu "Branch" "master\ndev" "" "$(omarchy-version-branch)") in - *master*) omarchy-update-branch master ;; - *dev*) omarchy-update-branch dev ;; + *master*) present_terminal "omarchy-update-branch master" ;; + *dev*) present_terminal "omarchy-update-branch dev" ;; *) show_update_menu ;; esac } diff --git a/bin/omarchy-update-branch b/bin/omarchy-update-branch index a75cae9..929e1bb 100755 --- a/bin/omarchy-update-branch +++ b/bin/omarchy-update-branch @@ -7,14 +7,27 @@ if (($# == 0)); then exit 1 fi -new_branch="$1" +branch="$1" # Snapshot before switching branch omarchy-snapshot create || [ $? -eq 127 ] -# Checkout the new branch -git -C $OMARCHY_PATH checkout $new_branch --autostash -git -C $OMARCHY_PATH diff --check || git -C $OMARCHY_PATH reset --merge +if ! git -C "$OMARCHY_PATH" diff --quiet || ! git -C "$OMARCHY_PATH" diff --cached --quiet; then + stashed=true + git -C "$OMARCHY_PATH" stash push -u -m "Autostash before switching to $branch" +else + stashed=false +fi + +# Switch branches +git -C "$OMARCHY_PATH" switch "$branch" + +# Reapply stash if we made one +if [[ $stashed == true ]]; then + if ! git -C "$OMARCHY_PATH" stash pop; then + echo "⚠️ Conflicts when applying stash — stash kept" + fi +fi # Update the system from the new branch omarchy-update-perform