git-fetch: adjust to packed-refs.
authorJunio C Hamano <junkio@cox.net>
Sun, 1 Oct 2006 07:42:40 +0000 (00:42 -0700)
committerJunio C Hamano <junkio@cox.net>
Sun, 1 Oct 2006 07:42:40 +0000 (00:42 -0700)
The command checked the presence of a ref by directly looking
into $GIT_DIR/refs directory.  Update it to use show-ref.

Signed-off-by: Junio C Hamano <junkio@cox.net>
git-fetch.sh

index 85e96a1cc7df5593600911b751bec361720c01a3..216be0ccf393639af20696e08210dc3f26df4e88 100755 (executable)
@@ -147,15 +147,15 @@ update_local_ref () {
        [ "$verbose" ] && echo >&2 "  $label_: $newshort_"
        return 0
     fi
-    oldshort_=$(git-rev-parse --short "$1" 2>/dev/null)
-    mkdir -p "$(dirname "$GIT_DIR/$1")"
+    oldshort_=$(git show-ref --hash --abbrev "$1" 2>/dev/null)
+
     case "$1" in
     refs/tags/*)
        # Tags need not be pointing at commits so there
        # is no way to guarantee "fast-forward" anyway.
-       if test -f "$GIT_DIR/$1"
+       if test -n "$oldshort_"
        then
-               if now_=$(cat "$GIT_DIR/$1") && test "$now_" = "$2"
+               if now_=$(git show-ref --hash "$1") && test "$now_" = "$2"
                then
                        [ "$verbose" ] && echo >&2 "* $1: same as $3"
                        [ "$verbose" ] && echo >&2 "  $label_: $newshort_" ||: