Reintegrate: handle merging from remote tracking branches

Junio C Hamano committed Jan 10, 2010 at 11:12 UTC dc8b63cc1211cc5b86126b49bcba29340027823b
1 file changed +17 -4
Reintegrate
+17 -4
@@ -25,6 +25,7 @@ no)
25 return 1
26 else
27 EDITOR=: git commit -a --no-verify
28 + echo "Accepted previous resolution"
29 return 0
30 fi
31 }
@@ -50,16 +51,28 @@ no)
51 exit
52 esac
53
53 -merge_msg="Merge branch '\(.*\)'"
54 x40='[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]'
55 x40="$x40$x40$x40$x40$x40$x40$x40$x40"
56 LF='
57 '
58
59 show_merge () {
60 - branch=$(expr "$msg" : "$merge_msg") &&
61 - tip=$(git rev-parse --verify "refs/heads/$branch" 2>/dev/null) &&
62 - merged=$(git name-rev --refs="refs/heads/$branch" "$other" 2>/dev/null) &&
60 + case "$msg" in
61 + "Merge branch '"*"'"*" into "*)
62 + branch=$(expr "$msg" : "Merge branch '\(.*\)'")
63 + merge_hier=heads/
64 + ;;
65 + "Merge remote branch '"*"'"*" into "*)
66 + branch=$(expr "$msg" : "Merge remote branch '\(.*\)'")
67 + merge_hier=
68 + ;;
69 + *)
70 + echo 2>&1 "Huh?: $msg"
71 + exit 1
72 + ;;
73 + esac &&
74 + tip=$(git rev-parse --verify "refs/$merge_hier$branch" 2>/dev/null) &&
75 + merged=$(git name-rev --refs="refs/$merge_hier$branch" "$other" 2>/dev/null) &&
76 merged=$(expr "$merged" : "$x40 \(.*\)") &&
77 test "$merged" != undefined || {
78 other=$(git log -1 --pretty='format:%s' $other) &&