diff options
author | Junio C Hamano <gitster@pobox.com> | 2010-01-10 19:12:42 (GMT) |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-01-10 19:12:42 (GMT) |
commit | dc8b63cc1211cc5b86126b49bcba29340027823b (patch) | |
tree | ab52650ab9b9e66842bfb04a57b72b39d62cae55 /Reintegrate | |
parent | 07635fa6ffa2b16893f437274fd8f4415b65ec4d (diff) | |
download | git-dc8b63cc1211cc5b86126b49bcba29340027823b.zip git-dc8b63cc1211cc5b86126b49bcba29340027823b.tar.gz git-dc8b63cc1211cc5b86126b49bcba29340027823b.tar.bz2 |
Reintegrate: handle merging from remote tracking branches
Diffstat (limited to 'Reintegrate')
-rwxr-xr-x | Reintegrate | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/Reintegrate b/Reintegrate index d9f14f2..21da827 100755 --- a/Reintegrate +++ b/Reintegrate @@ -25,6 +25,7 @@ no) return 1 else EDITOR=: git commit -a --no-verify + echo "Accepted previous resolution" return 0 fi } @@ -50,16 +51,28 @@ no) exit esac -merge_msg="Merge branch '\(.*\)'" x40='[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]' x40="$x40$x40$x40$x40$x40$x40$x40$x40" LF=' ' show_merge () { - branch=$(expr "$msg" : "$merge_msg") && - tip=$(git rev-parse --verify "refs/heads/$branch" 2>/dev/null) && - merged=$(git name-rev --refs="refs/heads/$branch" "$other" 2>/dev/null) && + case "$msg" in + "Merge branch '"*"'"*" into "*) + branch=$(expr "$msg" : "Merge branch '\(.*\)'") + merge_hier=heads/ + ;; + "Merge remote branch '"*"'"*" into "*) + branch=$(expr "$msg" : "Merge remote branch '\(.*\)'") + merge_hier= + ;; + *) + echo 2>&1 "Huh?: $msg" + exit 1 + ;; + esac && + tip=$(git rev-parse --verify "refs/$merge_hier$branch" 2>/dev/null) && + merged=$(git name-rev --refs="refs/$merge_hier$branch" "$other" 2>/dev/null) && merged=$(expr "$merged" : "$x40 \(.*\)") && test "$merged" != undefined || { other=$(git log -1 --pretty='format:%s' $other) && |