unset CDPATH
usage() {
- echo >&2 "* git clone [-l [-s]] [-q] [-u <upload-pack>] <repo> <dir>"
+ echo >&2 "* git clone [-l [-s]] [-q] [-u <upload-pack>] [-n] <repo> <dir>"
exit 1
}
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"
}
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 ;;
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
;;
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