X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=git-clone.sh;h=71431319c008fbc5771d97c4229e7054efd76395;hb=a7a8d3786e6b60a472d0f88f778cacaead122a6c;hp=44135f489d55c29eb2e7dce1b892471c55b9914b;hpb=89d844d084f14bc9506f63cd3c9aa44b21b49067;p=git.git diff --git a/git-clone.sh b/git-clone.sh index 44135f48..71431319 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 } @@ -61,10 +61,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 ;; @@ -139,7 +141,8 @@ yes,yes) then HEAD=HEAD fi - tar Ccf "$repo" - refs $HEAD | tar Cxf "$D/.git" - || exit 1 + (cd "$repo" && tar cf - refs $HEAD) | + (cd "$D/.git" && tar xf -) || exit 1 ;; *) case "$repo" in @@ -185,9 +188,16 @@ yes,yes) ;; esac -# Update origin. -mkdir -p "$D/.git/remotes/" && -rm -f "$D/.git/remotes/origin" && -echo >"$D/.git/remotes/origin" \ -"URL: $repo +cd $D || exit + +if test -f ".git/HEAD" +then + mkdir -p .git/remotes || exit + echo >.git/remotes/origin \ + "URL: $repo Pull: master:origin" + case "$no_checkout" in + '') + git checkout + esac +fi