git-svn: correctly handle packed-refs in refs/remotes/
[gitweb.git] / git-merge.sh
index 75af10d3e431edf6f7447ab4a3dfcf84e994a2ef..a948878b911f56a3d6ace784d5a93952ce25c64b 100755 (executable)
@@ -188,14 +188,15 @@ else
        # in this loop.
        merge_name=$(for remote
                do
-                       rh=$(git-rev-parse --verify "$remote"^0 2>/dev/null) &&
-                       if git show-ref -q --verify "refs/heads/$remote"
+                       rh=$(git-rev-parse --verify "$remote"^0 2>/dev/null) ||
+                       continue ;# not something we can merge
+                       bh=$(git show-ref -s --verify "refs/heads/$remote" 2>/dev/null)
+                       if test "$rh" = "$bh"
                        then
-                               what=branch
+                               echo "$rh               branch '$remote' of ."
                        else
-                               what=commit
-                       fi &&
-                       echo "$rh               $what '$remote'"
+                               echo "$rh               commit '$remote'"
+                       fi
                done | git-fmt-merge-msg
        )
        merge_msg="${merge_msg:+$merge_msg$LF$LF}$merge_name"