Fix automerge message.
[git.git] / git-fetch-script
index dd94ede..f9f90b6 100755 (executable)
@@ -55,21 +55,41 @@ append_fetch_head () {
     remote_nick_="$4"
     local_name_="$5"
 
+    # remote-nick is the URL given on the command line (or a shorthand)
+    # remote-name is the $GIT_DIR relative refs/ path we computed
+    # for this refspec.
+    case "$remote_name_" in
+    HEAD)
+       note_= ;;
+    refs/heads/*)
+       note_="$(expr "$remote_name_" : 'refs/heads/\(.*\)')"
+       note_="branch '$note_' of " ;;
+    refs/tags/*)
+       note_="$(expr "$remote_name_" : 'refs/tags/\(.*\)')"
+       note_="tag '$note_' of " ;;
+    *)
+       note_="$remote_name of " ;;
+    esac
+    remote_1_=$(expr "$remote_" : '\(.*\)\.git/*$') &&
+       remote_="$remote_1_"
+    note_="$note_$remote_"
+
     # 2.6.11-tree tag would not be happy to be fed to resolve.
     if git-cat-file commit "$head_" >/dev/null 2>&1
     then
        headc_=$(git-rev-parse --verify "$head_^0") || exit
-       note_="$headc_  $remote_name_ from $remote_nick_"
-       echo "$note_" >>$GIT_DIR/FETCH_HEAD
-       echo >&2 "* committish: $note_"
+       echo "$headc_   $note_" >>$GIT_DIR/FETCH_HEAD
+       echo >&2 "* committish: $head_"
+       echo >&2 "  $note_"
     else
-       echo >&2 "* non-commit: $note_"
+       echo >&2 "* non-commit: $head_"
+       echo >&2 "  $note_"
     fi
     if test "$local_name_" != ""
     then
        # We are storing the head locally.  Make sure that it is
        # a fast forward (aka "reverse push").
-       fast_forward_local "$local_name_" "$head_" "$remote_" "$remote_name_"
+       fast_forward_local "$local_name_" "$head_" "$note_"
     fi
 }
 
@@ -80,11 +100,9 @@ fast_forward_local () {
        # is no way to guarantee "fast-forward" anyway.
        if test -f "$GIT_DIR/$1"
        then
-               echo >&2 "* $1: updating with $4"
-               echo >&2 "  from $3."
+               echo >&2 "* $1: updating with $3"
        else
-               echo >&2 "* $1: storing $4"
-               echo >&2 "  from $3."
+               echo >&2 "* $1: storing $3"
        fi
        echo "$2" >"$GIT_DIR/$1" ;;
 
@@ -97,31 +115,28 @@ fast_forward_local () {
            mb=$(git-merge-base "$local" "$2") &&
            case "$2,$mb" in
            $local,*)
-               echo >&2 "* $1: same as $4"
-               echo >&2 "  from $3"
+               echo >&2 "* $1: same as $3"
                ;;
            *,$local)
-               echo >&2 "* $1: fast forward to $4"
-               echo >&2 "  from $3"
+               echo >&2 "* $1: fast forward to $3"
                ;;
            *)
                false
                ;;
            esac || {
-               echo >&2 "* $1: does not fast forward to $4"
+               echo >&2 "* $1: does not fast forward to $3;"
                case "$force,$single_force" in
                t,* | *,t)
-                       echo >&2 "  from $3; forcing update."
+                       echo >&2 "  forcing update."
                        ;;
                *)
                        mv "$GIT_DIR/$1.lock" "$GIT_DIR/$1.remote"
-                       echo >&2 "  from $3; leaving it in '$1.remote'"
+                       echo >&2 "  leaving it in '$1.remote'"
                        ;;
                esac
            }
        else
-               echo >&2 "* $1: storing $4"
-               echo >&2 "  from $3."
+               echo >&2 "* $1: storing $3"
        fi
        test -f "$GIT_DIR/$1.lock" &&
            mv "$GIT_DIR/$1.lock" "$GIT_DIR/$1"