X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=git-clone.sh;h=c27a913b1ddf1474df4300dc68bebeeb06f145f1;hb=50496b2170cbe87b4c13f89f274aa2f181522bb9;hp=a322a459952cd28055f74b4ff1766407789dadf9;hpb=dbc37438687e110697574d175e4eca5f9cbeae81;p=git.git diff --git a/git-clone.sh b/git-clone.sh index a322a459..c27a913b 100755 --- a/git-clone.sh +++ b/git-clone.sh @@ -9,7 +9,7 @@ unset CDPATH usage() { - echo >&2 "* git clone [-l [-s]] [-q] [-u ] " + echo >&2 "* git clone [-l [-s]] [-q] [-u ] [-n] " exit 1 } @@ -53,7 +53,11 @@ Perhaps git-update-server-info needs to be run there?" while read sha1 refname do name=`expr "$refname" : 'refs/\(.*\)'` && - git-http-fetch -v -a -w "$name" "$name" "$1/" || exit 1 + case "$name" in + *^*) ;; + *) + git-http-fetch -v -a -w "$name" "$name" "$1/" || exit 1 + esac done <"$clone_tmp/refs" rm -fr "$clone_tmp" } @@ -61,10 +65,12 @@ Perhaps git-update-server-info needs to be run there?" quiet= use_local=no local_shared=no +no_checkout= upload_pack= while case "$#,$1" in 0,*) break ;; + *,-n) no_checkout=yes ;; *,-l|*,--l|*,--lo|*,--loc|*,--loca|*,--local) use_local=yes ;; *,-s|*,--s|*,--sh|*,--sha|*,--shar|*,--share|*,--shared) local_shared=yes ;; @@ -186,9 +192,23 @@ yes,yes) ;; esac -# Update origin. -mkdir -p "$D/.git/remotes/" && -rm -f "$D/.git/remotes/origin" && -echo >"$D/.git/remotes/origin" \ -"URL: $repo -Pull: master:origin" +cd $D || exit + +if test -f ".git/HEAD" +then + 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 + esac +fi