http_fetch () {
# $1 = Remote, $2 = Local
- curl -nsf $curl_extra_args "$1" >"$2"
+ curl -nsfL $curl_extra_args "$1" >"$2"
}
clone_dumb_http () {
fi &&
rm -f "$D/.git/objects/sample" &&
cd "$repo" &&
- find objects -type f -print |
- cpio -puamd$l "$D/.git/" || exit 1
+ find objects -depth -print | cpio -puamd$l "$D/.git/" || exit 1
;;
yes)
mkdir -p "$D/.git/objects/info"
rm -f "$D/.git/TMP_ALT"
if test -f "$D/.git/TMP_ALT"
then
- ( cd $D &&
+ ( cd "$D" &&
. git-parse-remote &&
resolve_alternates "$repo" <"./.git/TMP_ALT" ) |
while read alt
;;
esac
-cd $D || exit
+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 &&
+ find .git/refs/heads -type f -print |
+ while read ref
+ do
+ head=`expr "$ref" : '.git/refs/heads/\(.*\)'` &&
+ test "$head_points_at" = "$head" ||
+ test "origin" = "$head" ||
+ echo "Pull: ${head}:${head}"
+ done >>.git/remotes/origin
+ esac
+
case "$no_checkout" in
'')
git checkout