Merge branch 'maint'
authorJunio C Hamano <junkio@cox.net>
Wed, 25 Oct 2006 19:57:48 +0000 (12:57 -0700)
committerJunio C Hamano <junkio@cox.net>
Wed, 25 Oct 2006 19:57:48 +0000 (12:57 -0700)
* maint:
xdiff: Match GNU diff behaviour when deciding hunk comment worthiness of lines
Update cherry documentation.
Refer to git-rev-parse:Specifying Revisions from git.txt
git-fetch.sh printed protocol fix
RPM package re-classification.
Documentation: note about contrib/.
git-svn: fix symlink-to-file changes when using command-line svn 1.4.0
Set $HOME for selftests

1  2 
git-fetch.sh
diff --combined git-fetch.sh
index b15fc2b389f35e2b30b17eada4bcc711a12d2a11,a674c8c5744c5f8b3826336fc9db4e53fd0942b3..7dc1f33687279812605c7b6f9ddc13478e143058
@@@ -129,25 -129,22 +129,25 @@@ append_fetch_head () 
      then
        headc_=$(git-rev-parse --verify "$head_^0") || exit
        echo "$headc_   $not_for_merge_ $note_" >>"$GIT_DIR/FETCH_HEAD"
 -      [ "$verbose" ] && echo >&2 "* committish: $head_"
 -      [ "$verbose" ] && echo >&2 "  $note_"
      else
        echo "$head_    not-for-merge   $note_" >>"$GIT_DIR/FETCH_HEAD"
 -      [ "$verbose" ] && echo >&2 "* non-commit: $head_"
 -      [ "$verbose" ] && 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_" "$note_"
      fi
 +
 +    update_local_ref "$local_name_" "$head_" "$note_"
  }
  
 -fast_forward_local () {
 +update_local_ref () {
 +    # If we are storing the head locally make sure that it is
 +    # a fast forward (aka "reverse push").
 +
 +    label_=$(git-cat-file -t $2)
 +    newshort_=$(git-rev-parse --short $2)
 +    if test -z "$1" ; then
 +      [ "$verbose" ] && echo >&2 "* fetched $3"
 +      [ "$verbose" ] && echo >&2 "  $label_: $newshort_"
 +      return 0
 +    fi
 +    oldshort_=$(git-rev-parse --short "$1" 2>/dev/null)
      mkdir -p "$(dirname "$GIT_DIR/$1")"
      case "$1" in
      refs/tags/*)
        then
                if now_=$(cat "$GIT_DIR/$1") && test "$now_" = "$2"
                then
 -                      [ "$verbose" ] && echo >&2 "* $1: same as $3" ||:
 +                      [ "$verbose" ] && echo >&2 "* $1: same as $3"
 +                      [ "$verbose" ] && echo >&2 "  $label_: $newshort_" ||:
                else
                        echo >&2 "* $1: updating with $3"
 +                      echo >&2 "  $label_: $newshort_"
                        git-update-ref -m "$rloga: updating tag" "$1" "$2"
                fi
        else
                echo >&2 "* $1: storing $3"
 +              echo >&2 "  $label_: $newshort_"
                git-update-ref -m "$rloga: storing tag" "$1" "$2"
        fi
        ;;
                if test -n "$verbose"
                then
                        echo >&2 "* $1: same as $3"
 +                      echo >&2 "  $label_: $newshort_"
                fi
                ;;
            *,$local)
                echo >&2 "* $1: fast forward to $3"
 -              echo >&2 "  from $local to $2"
 +              echo >&2 "  old..new: $oldshort_..$newshort_"
                git-update-ref -m "$rloga: fast-forward" "$1" "$2" "$local"
                ;;
            *)
                false
                ;;
            esac || {
 -              echo >&2 "* $1: does not fast forward to $3;"
                case ",$force,$single_force," in
                *,t,*)
 -                      echo >&2 "  forcing update."
 +                      echo >&2 "* $1: forcing update to non-fast forward $3"
 +                      echo >&2 "  old...new: $oldshort_...$newshort_"
                        git-update-ref -m "$rloga: forced-update" "$1" "$2" "$local"
                        ;;
                *)
 -                      echo >&2 "  not updating."
 +                      echo >&2 "* $1: not updating to non-fast forward $3"
 +                      echo >&2 "  old...new: $oldshort_...$newshort_"
                        exit 1
                        ;;
                esac
            }
        else
            echo >&2 "* $1: storing $3"
 +          echo >&2 "  $label_: $newshort_"
            git-update-ref -m "$rloga: storing head" "$1" "$2"
        fi
        ;;
@@@ -296,6 -287,7 +296,7 @@@ fetch_main () 
        # There are transports that can fetch only one head at a time...
        case "$remote" in
        http://* | https://* | ftp://*)
+         proto=`expr "$remote" : '\([^:]*\):'`
          if [ -n "$GIT_SSL_NO_VERIFY" ]; then
              curl_extra_args="-k"
          fi
          done
          expr "z$head" : "z$_x40\$" >/dev/null ||
              die "Failed to fetch $remote_name from $remote"
-         echo >&2 Fetching "$remote_name from $remote" using http
+         echo >&2 "Fetching $remote_name from $remote using $proto"
          git-http-fetch -v -a "$head" "$remote/" || exit
          ;;
        rsync://*)