X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=%2Bbin%2Fgit-up;h=35e0e9df2a7746aa53c9b9cf5fd5e8a06329bb27;hb=1f66b92bd417b2e96d9b819a9ca256cfb4e8fe98;hp=da40169df18d0d9041d79649f1706d4607cb4c07;hpb=56894d8e51e7d0ca54c798431fb3428245f6ce13;p=~madcoder%2Fdotfiles.git diff --git a/+bin/git-up b/+bin/git-up index da40169..35e0e9d 100755 --- a/+bin/git-up +++ b/+bin/git-up @@ -69,16 +69,20 @@ if test -z "$action"; then esac fi +no_changes () { + git diff-index --quiet --cached HEAD --ignore-submodules -- && + git diff-files --quiet --ignore-submodules +} + unclean= -git rev-parse --verify HEAD > /dev/null && \ - git update-index --refresh && \ - git diff-files --quiet && \ - git diff-index --cached --quiet HEAD -- || unclean=t +no_changes || unclean=t + case "$action" in rebase) test -z "$unclean" || git stash save "git-up stash" git rebase "${remote}/${branch#refs/heads/}" + cd "$(dirname "$(git rev-parse --git-dir)")" && git submodule update --rebase ;; merge) test -z "$unclean" || git stash save "git-up stash" @@ -95,6 +99,6 @@ if test -n "$unclean"; then echo "" echo "run 'git stash apply' when rebase is finished" else - git stash apply + git stash pop fi fi