revision arguments: ..B means HEAD..B, just like A.. means A..HEAD
[git.git] / git-clone.sh
index 3b54753..6887321 100755 (executable)
@@ -45,7 +45,7 @@ Perhaps git-update-server-info needs to be run there?"
                if test -n "$use_separate_remote" &&
                   branch_name=`expr "$name" : 'heads/\(.*\)'`
                then
-                       tname="remotes/$branch_name"
+                       tname="remotes/$origin/$branch_name"
                else
                        tname=$name
                fi
@@ -370,16 +370,22 @@ then
 Pull: refs/heads/$head_points_at:refs/$origin_tracking" &&
                case "$use_separate_remote" in
                t) git-update-ref HEAD "$head_sha1" ;;
-               *) git-update-ref "refs/$origin" $(git-rev-parse HEAD)
+               *) git-update-ref "refs/heads/$origin" $(git-rev-parse HEAD) ;;
                esac &&
                (cd "$GIT_DIR/$remote_top" && find . -type f -print) |
                while read dotslref
                do
                        name=`expr "$dotslref" : './\(.*\)'` &&
                        test "$head_points_at" = "$name" ||
-                       test "$origin" = "$head" ||
+                       test "$origin" = "$name" ||
                        echo "Pull: refs/heads/${name}:$remote_top/${name}"
-               done >>"$GIT_DIR/remotes/$origin"
+               done >>"$GIT_DIR/remotes/$origin" &&
+               case "$use_separate_remote" in
+               t)
+                       rm -f "refs/remotes/$origin/HEAD"
+                       git-symbolic-ref "refs/remotes/$origin/HEAD" \
+                               "refs/remotes/$origin/$head_points_at"
+               esac
        esac
 
        case "$no_checkout" in