make 'git add' a first class user friendly interface to the index
[gitweb.git] / git-merge.sh
index dd4e83dede72ee4b4c85632aa582ef8a25d00447..272f004622572ad2aed62268d9a75cac5a8fa751 100755 (executable)
@@ -159,7 +159,7 @@ then
        shift
        head_arg="$1"
        shift
-elif ! git-rev-parse --verify HEAD 2>/dev/null
+elif ! git-rev-parse --verify HEAD >/dev/null 2>&1
 then
        # If the merged head is a valid one there is no reason to
        # forbid "git merge" into a branch yet to be born.  We do
@@ -188,14 +188,14 @@ 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) &&
+                       bh=$(git show-ref -s --verify "refs/heads/$remote") &&
+                       if test "$rh" = "$bh"
                        then
-                               what=branch
+                               echo "$rh               branch '$remote' of ."
                        else
-                               what=commit
+                               echo "$rh               commit '$remote'"
                        fi
-                       echo "$rh               $what '$remote'"
                done | git-fmt-merge-msg
        )
        merge_msg="${merge_msg:+$merge_msg$LF$LF}$merge_name"
@@ -209,7 +209,7 @@ test "$rloga" = '' && rloga="merge: $@"
 remoteheads=
 for remote
 do
-       remotehead=$(git-rev-parse --verify "$remote"^0) ||
+       remotehead=$(git-rev-parse --verify "$remote"^0 2>/dev/null) ||
            die "$remote - not something we can merge"
        remoteheads="${remoteheads}$remotehead "
 done