diff --git a/git-clone.sh b/git-clone.sh index 3b5475340d..5953e18a5b 100755 --- a/git-clone.sh +++ b/git-clone.sh @@ -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,7 +370,7 @@ 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/$origin" $(git-rev-parse HEAD) ;; esac && (cd "$GIT_DIR/$remote_top" && find . -type f -print) | while read dotslref @@ -379,7 +379,13 @@ Pull: refs/heads/$head_points_at:refs/$origin_tracking" && test "$head_points_at" = "$name" || test "$origin" = "$head" || 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