Browse Source

Cloning from a repo without "current branch"

If the remote repository does not have a "current branch", git-clone
was confused and did not set up the resulting new repository
correctly.  It did not reset HEAD from the default 'master', and did
not write the SHA1 to the master branch.

Signed-off-by: Nanako Shiraishi <nanako3@bluebottle.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Nanako Shiraishi 18 years ago committed by Junio C Hamano
parent
commit
6762079a96
  1. 20
      git-clone.sh

20
git-clone.sh

@ -377,6 +377,13 @@ then @@ -377,6 +377,13 @@ then
)
)

# Upstream URL
git-config remote."$origin".url "$repo" &&

# Set up the mappings to track the remote branches.
git-config remote."$origin".fetch \
"+refs/heads/*:$remote_top/*" '^$' &&

# Write out remote.$origin config, and update our "$head_points_at".
case "$head_points_at" in
?*)
@ -384,21 +391,20 @@ then @@ -384,21 +391,20 @@ then
git-symbolic-ref HEAD "refs/heads/$head_points_at" &&

# Tracking branch for the primary branch at the remote.
origin_track="$remote_top/$head_points_at" &&
git-update-ref HEAD "$head_sha1" &&

# Upstream URL
git-config remote."$origin".url "$repo" &&

# Set up the mappings to track the remote branches.
git-config remote."$origin".fetch \
"+refs/heads/*:$remote_top/*" '^$' &&
rm -f "refs/remotes/$origin/HEAD"
git-symbolic-ref "refs/remotes/$origin/HEAD" \
"refs/remotes/$origin/$head_points_at" &&

git-config branch."$head_points_at".remote "$origin" &&
git-config branch."$head_points_at".merge "refs/heads/$head_points_at"
;;
'')
# Source had detached HEAD pointing nowhere
git-update-ref --no-deref HEAD "$head_sha1" &&
rm -f "refs/remotes/$origin/HEAD"
;;
esac

case "$no_checkout" in

Loading…
Cancel
Save