[PATCH] git: fix trivial warning from show_rename_copy()
[gitweb.git] / git-clone-script
index 01707e92aac0c2ed654d14df230e19ab9378fa94..f92851ca4bd9fc662f8d0dda6c626ff4a6169f19 100755 (executable)
@@ -14,11 +14,13 @@ get_repo_base() {
        (cd "$1" && (cd .git ; pwd)) 2> /dev/null
 }
 
+quiet=
 use_local=no
 while
        case "$#,$1" in
        0,*) break ;;
         *,-l|*,--l|*,--lo|*,--loc|*,--loca|*,--local) use_local=yes ;;
+       *,-q|*,--quiet) quiet=-q ;;
        *,-*) usage ;;
        *) break ;;
        esac
@@ -46,11 +48,8 @@ test -d "$D" || usage
 case "$local,$use_local" in
 yes,yes)
        ( cd "$repo/objects" ) || {
-               repo="$repo/.git"
-               ( cd "$repo/objects" ) || {
-                   echo >&2 "-l flag seen but $repo is not local."
-                   exit 1
-               }
+               echo >&2 "-l flag seen but $repo is not local."
+               exit 1
        }
 
        # See if we can hardlink and drop "l" if not.
@@ -66,7 +65,9 @@ yes,yes)
                l=l
        fi &&
        rm -f "$D/.git/objects/sample" &&
-       cp -r$l "$repo/objects" "$D/.git/" || exit 1
+       cd "$repo" &&
+       find objects -type f -print |
+       cpio -puamd$l "$D/.git/" || exit 1
 
        # Make a duplicate of refs and HEAD pointer
        HEAD=
@@ -81,14 +82,14 @@ esac
 
 case "$repo" in
 rsync://*)
-       rsync -avz --ignore-existing "$repo/objects/" "$D/.git/objects/" &&
-       rsync -avz --ignore-existing "$repo/refs/" "$D/.git/refs/"
+       rsync $quiet -avz --ignore-existing "$repo/objects/" "$D/.git/objects/" &&
+       rsync $quiet -avz --ignore-existing "$repo/refs/" "$D/.git/refs/"
        ;;
 http://*)
        echo "Somebody should add http fetch" >&2
        exit 1
        ;;
 *)
-       cd "$D" && git-clone-pack "$repo"
+       cd "$D" && git-clone-pack $quiet "$repo"
        ;;
 esac