diff options
| -rwxr-xr-x | git-update-agent | 31 | 
1 files changed, 26 insertions, 5 deletions
diff --git a/git-update-agent b/git-update-agent index 6d1ebdb..e3a56ed 100755 --- a/git-update-agent +++ b/git-update-agent @@ -99,6 +99,23 @@ local_branch() {    echo "$branch"  } +die_manually_pop_stash() { +die <<_EOF +Could not pop git stash, must be manually popped to restore state: +git stash pop +_EOF +} + +try_stash_pop() { +  if [ -n "${STASHED}" ] && [ -z "${NO_STASH_POP}" ]; then +     +    if ! git stash pop &>/dev/null; then +      die_manually_pop_stash +    fi + +  fi +} +  merge() {    local STASHED @@ -113,6 +130,7 @@ merge() {    local remote_ref    remote_ref="$remote/$remote_branch" +  trap 'try_stash_pop' EXIT    if [[ -n "$(git status --untracked-files=all --porcelain 2>/dev/null)" ]]; then      # Abort rebase or merge if initiated @@ -138,9 +156,9 @@ merge() {        --strategy-option=ignore-all-space \        >/dev/null -  if [[ -n "$STASHED" && -z "$NO_STASH_POP" ]]; then -    git stash pop &>/dev/null -  fi +  trap - EXIT + +  try_stash_pop  }  remote() { @@ -312,7 +330,10 @@ init_repo() {    DEFAULT_BRANCH="main" -  git init &>/dev/null +  if ! git init &>/dev/null; then +    die "Could not initalize git repository" +  fi +    git config "remote.${remote}.url" "$remote_url"    git config "remote.${remote}.fetch" "+refs/heads/*:refs/remotes/$remote/*"    set_should_track true @@ -329,7 +350,7 @@ init_repo() {  }  print_version() { -  echo "0.0.6" +  echo "0.0.7"  }  #  | 
