[PATCH] git-clone-script local optimization tweaks
authorJunio C Hamano <junkio@cox.net>
Mon, 11 Jul 2005 20:30:54 +0000 (13:30 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Mon, 11 Jul 2005 21:06:57 +0000 (14:06 -0700)
 - When local optimization is used, the variable repo has
   already been passed through get_repo_base so there is no need
   to check for .git subdirectory in there.

 - Use cpio -l instead of "cp -l".

Signed-off-by: Junio C Hamano <junkio@cox.net>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
git-clone-script

index 5a241fb25e40759a4db21ac3862a848955bc0847..f92851ca4bd9fc662f8d0dda6c626ff4a6169f19 100755 (executable)
@@ -48,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.
@@ -68,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=