From cd0d74d2f9c7578b36e705dda55f79731dbe9696 Mon Sep 17 00:00:00 2001
From: Junio C Hamano <junkio@cox.net>
Date: Mon, 18 Sep 2006 02:29:01 -0700
Subject: [PATCH 1/2] repack: use only pack-objects, not rev-list.

Signed-off-by: Junio C Hamano <junkio@cox.net>
---
 git-repack.sh | 13 ++++---------
 1 file changed, 4 insertions(+), 9 deletions(-)

diff --git a/git-repack.sh b/git-repack.sh
index b525fc5df..9ae509220 100755
--- a/git-repack.sh
+++ b/git-repack.sh
@@ -32,12 +32,10 @@ trap 'rm -f "$PACKTMP"-*' 0 1 2 3 15
 # There will be more repacking strategies to come...
 case ",$all_into_one," in
 ,,)
-	rev_list='--unpacked'
-	pack_objects='--incremental'
+	args='--unpacked --incremental'
 	;;
 ,t,)
-	rev_list=
-	pack_objects=
+	args=
 
 	# Redundancy check in all-into-one case is trivial.
 	existing=`test -d "$PACKDIR" && cd "$PACKDIR" && \
@@ -45,11 +43,8 @@ case ",$all_into_one," in
 	;;
 esac
 
-pack_objects="$pack_objects $local $quiet $no_reuse_delta$extra"
-name=$( { git-rev-list --objects --all $rev_list ||
-	  echo "git-rev-list died with exit code $?"
-	} |
-	git-pack-objects --non-empty $pack_objects "$PACKTMP") ||
+args="$args $local $quiet $no_reuse_delta$extra"
+name=$(git-pack-objects --non-empty --all $args </dev/null "$PACKTMP") ||
 	exit 1
 if [ -z "$name" ]; then
 	echo Nothing new to pack.

From d0b353b1a7a2f5168a8e2c992403f2a7d1e323f8 Mon Sep 17 00:00:00 2001
From: Jeff King <peff@peff.net>
Date: Sun, 24 Sep 2006 22:31:11 -0400
Subject: [PATCH 2/2] git-repack: allow git-repack to run in subdirectory

Now that we explicitly create all tmpfiles below $GIT_DIR, there's no reason
to care about which directory we're in.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
---
 git-repack.sh | 1 +
 1 file changed, 1 insertion(+)

diff --git a/git-repack.sh b/git-repack.sh
index 9ae509220..f2c9071d1 100755
--- a/git-repack.sh
+++ b/git-repack.sh
@@ -4,6 +4,7 @@
 #
 
 USAGE='[-a] [-d] [-f] [-l] [-n] [-q]'
+SUBDIRECTORY_OK='Yes'
 . git-sh-setup
 
 no_update_info= all_into_one= remove_redundant=