@matheusbsbs / matheus-bagliano / commits / 13dd255e4a
Fork 0

merge script: improve log message subject

- point out remote-tracking branches as "remote branch 'upstream/master'"; - avoid misleading log messages when a tag and branch share a name. This approximates the builtin merge command's behavior well enough to pass the relevant tests. Based roughly on v1.6.4.2~10^2 (merge: indicate remote tracking branches in merge message, 2009-08-09) and v1.6.4.2~10^2~1 (merge: fix incorrect merge message for ambiguous tag/branch, 2009-08-09). Cc: Jeff King <peff@peff.net> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Jonathan Nieder committed Aug 17, 2010 at 02:04 UTC 13dd255e4abb95895aaef72e2b93564be90cb49c
1 file changed +19 -8
contrib/examples/git-merge.sh
+19 -8
@@ -134,21 +134,32 @@ finish () {
134 merge_name () {
135 remote="$1"
136 rh=$(git rev-parse --verify "$remote^0" 2>/dev/null) || return
137 - bh=$(git show-ref -s --verify "refs/heads/$remote" 2>/dev/null)
138 - if test "$rh" = "$bh"
139 - then
140 - echo "$rh branch '$remote' of ."
141 - elif truname=$(expr "$remote" : '\(.*\)~[1-9][0-9]*$') &&
137 + if truname=$(expr "$remote" : '\(.*\)~[0-9]*$') &&
138 git show-ref -q --verify "refs/heads/$truname" 2>/dev/null
139 then
140 echo "$rh branch '$truname' (early part) of ."
145 - elif test "$remote" = "FETCH_HEAD" -a -r "$GIT_DIR/FETCH_HEAD"
141 + return
142 + fi
143 + if found_ref=$(git rev-parse --symbolic-full-name --verify \
144 + "$remote" 2>/dev/null)
145 + then
146 + if test "${found_ref#refs/heads/}" != "$found_ref"
147 + then
148 + echo "$rh branch '$remote' of ."
149 + return
150 + elif test "${found_ref#refs/remotes/}" != "$found_ref"
151 + then
152 + echo "$rh remote branch '$remote' of ."
153 + return
154 + fi
155 + fi
156 + if test "$remote" = "FETCH_HEAD" -a -r "$GIT_DIR/FETCH_HEAD"
157 then
158 sed -e 's/ not-for-merge / /' -e 1q \
159 "$GIT_DIR/FETCH_HEAD"
149 - else
150 - echo "$rh commit '$remote'"
160 + return
161 fi
162 + echo "$rh commit '$remote'"
163 }
164
165 parse_config () {