aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2005-11-01 22:19:36 -0800
committerJunio C Hamano <junkio@cox.net>2005-11-01 22:19:36 -0800
commite125c1a717bb732319596d8b792a67c2b7b15ef7 (patch)
treeb774cd64105bda561bba3c528a7fea19b87755a1
parente5215804ded0102f6d6f3d694374ae5e106fd9c0 (diff)
downloadgit-e125c1a717bb732319596d8b792a67c2b7b15ef7.tar.gz
git-e125c1a717bb732319596d8b792a67c2b7b15ef7.tar.xz
git-clone: do not forget to create origin branch.
The newly cloned repository by default had .git/remotes/origin set up to track the remote master to origin, but forgot to create the origin branch ourselves. Also it hardcoded the assumption that the remote HEAD points at "master", which may not always be true. Signed-off-by: Junio C Hamano <junkio@cox.net>
-rwxr-xr-xgit-clone.sh15
1 files changed, 11 insertions, 4 deletions
diff --git a/git-clone.sh b/git-clone.sh
index 18e692a67..c27a913b1 100755
--- a/git-clone.sh
+++ b/git-clone.sh
@@ -196,10 +196,17 @@ cd $D || exit
if test -f ".git/HEAD"
then
- mkdir -p .git/remotes || exit
- echo >.git/remotes/origin \
- "URL: $repo
-Pull: master:origin"
+ head_points_at=`git-symbolic-ref HEAD`
+ case "$head_points_at" in
+ refs/heads/*)
+ head_points_at=`expr "$head_points_at" : 'refs/heads/\(.*\)'`
+ mkdir -p .git/remotes &&
+ echo >.git/remotes/origin \
+ "URL: $repo
+Pull: $head_points_at:origin"
+ cp ".git/refs/heads/$head_points_at" .git/refs/heads/origin
+ esac
+
case "$no_checkout" in
'')
git checkout