upstream rebase detection: verify that one of the two commits is upstream
authorRudolf Polzer <divverent@alientrap.org>
Sun, 21 Nov 2010 14:59:58 +0000 (15:59 +0100)
committerRudolf Polzer <divverent@alientrap.org>
Sun, 21 Nov 2010 14:59:58 +0000 (15:59 +0100)
all

diff --git a/all b/all
index 5db6bae96c35af01daae355f9fcb435fdfdfa9a1..23acd27e6276aea3569f3065994638f930bb2a38 100755 (executable)
--- a/all
+++ b/all
@@ -269,6 +269,17 @@ fix_upstream_rebase()
        if [ -z "$r_me" ] || [ -z "$r_other" ]; then
                return
        fi
+
+       # one of the two sides of the merge should be remote upstream, or all is fine
+       r_r=`git symbolic-ref HEAD`
+       r_rem=`git config "branch.$r_rem.remote" || $ECHO origin`
+       r_bra=`git config "branch.$r_bra.merge" || $ECHO "$r_r"`
+       if [ x"$r_me" != x"`git rev-parse "$r_rem/$r_bra"`" ]; then
+               if [ x"$r_other" != x"`git rev-parse "$r_rem/$r_bra"`" ]; then
+                       return
+               fi
+       fi
+
        r_base=`git merge-base "$r_me" "$r_other"`
 
        # no merge-base? upstream did filter-branch