diff options
Diffstat (limited to 'git-clone-script')
-rwxr-xr-x | git-clone-script | 117 |
1 files changed, 0 insertions, 117 deletions
diff --git a/git-clone-script b/git-clone-script deleted file mode 100755 index 60dc2a9d88..0000000000 --- a/git-clone-script +++ /dev/null @@ -1,117 +0,0 @@ -#!/bin/sh -# -# Copyright (c) 2005, Linus Torvalds -# Copyright (c) 2005, Junio C Hamano -# -# Clone a repository into a different directory that does not yet exist. - -usage() { - echo >&2 "* git clone [-l] [-q] [-u <upload-pack>] <repo> <dir>" - exit 1 -} - -get_repo_base() { - (cd "$1" && (cd .git ; pwd)) 2> /dev/null -} - -quiet= -use_local=no -upload_pack= -while - case "$#,$1" in - 0,*) break ;; - *,-l|*,--l|*,--lo|*,--loc|*,--loca|*,--local) use_local=yes ;; - *,-q|*,--quiet) quiet=-q ;; - 1,-u|1,--upload-pack) usage ;; - *,-u|*,--upload-pack) - shift - upload_pack="--exec=$1" ;; - *,-*) usage ;; - *) break ;; - esac -do - shift -done - -# Turn the source into an absolute path if -# it is local -repo="$1" -local=no -if base=$(get_repo_base "$repo"); then - repo="$base" - local=yes -fi - -dir="$2" -mkdir "$dir" && -D=$( - (cd "$dir" && git-init-db && pwd) -) && -test -d "$D" || usage - -# We do local magic only when the user tells us to. -case "$local,$use_local" in -yes,yes) - ( cd "$repo/objects" ) || { - echo >&2 "-l flag seen but $repo is not local." - exit 1 - } - - # See if we can hardlink and drop "l" if not. - sample_file=$(cd "$repo" && \ - find objects -type f -print | sed -e 1q) - - # objects directory should not be empty since we are cloning! - test -f "$repo/$sample_file" || exit - - l= - if ln "$repo/$sample_file" "$D/.git/objects/sample" 2>/dev/null - then - l=l - fi && - rm -f "$D/.git/objects/sample" && - cd "$repo" && - find objects -type f -print | - cpio -puamd$l "$D/.git/" || exit 1 - - # Make a duplicate of refs and HEAD pointer - HEAD= - if test -f "$repo/HEAD" - then - HEAD=HEAD - fi - tar Ccf "$repo" - refs $HEAD | tar Cxf "$D/.git" - || exit 1 - ;; -*) - case "$repo" in - rsync://*) - rsync $quiet -avz --ignore-existing "$repo/objects/" "$D/.git/objects/" && - rsync $quiet -avz --ignore-existing "$repo/refs/" "$D/.git/refs/" - ;; - http://*) - git-clone-dumb-http "$repo" "$D" - case "$?" in - 2) - echo "Somebody should define smarter http server protocol" >&2 - exit 1 - ;; - 0) - ;; - *) - exit - esac - ;; - *) - cd "$D" && case "$upload_pack" in - '') git-clone-pack $quiet "$repo" ;; - *) git-clone-pack $quiet "$upload_pack" "$repo" ;; - esac - ;; - esac - ;; -esac - -# Update origin. -mkdir -p "$D/.git/branches/" && -rm -f "$D/.git/branches/origin" && -echo "$repo" >"$D/.git/branches/origin" |