Subject: [PATCH/corrected] Make git-prune-packed a builtin

From: Matthias Kestenholz <[email-masked]>
Date: Wed, 2 Aug 2006 18:32:32 +0200

Signed-off-by: Matthias Kestenholz <[email-masked]>
---

Please discard the other patch. This one also removes the second call to
setup_git_directory()

Btw. the NEEDS_PREFIX name in git.c confuses me. It should probably
be something like AUTO_SETUP_DIRECTORY ? It would be clearer what it
means.

 Makefile                                 |    6 +++---
 prune-packed.c => builtin-prune-packed.c |    4 +---
 builtin.h                                |    1 +
 git.c                                    |    1 +
 4 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/Makefile b/Makefile
index 2562a2c..e39c9da 100644
--- a/Makefile
+++ b/Makefile
@@ -196,7 +196,7 @@ PROGRAMS = \
 	git-hash-object$X git-index-pack$X git-local-fetch$X \
 	git-merge-base$X \
 	git-merge-index$X git-mktag$X git-mktree$X git-pack-objects$X git-patch-id$X \
-	git-peek-remote$X git-prune-packed$X git-receive-pack$X \
+	git-peek-remote$X git-receive-pack$X \
 	git-send-pack$X git-shell$X \
 	git-show-index$X git-ssh-fetch$X \
 	git-ssh-upload$X git-unpack-file$X \
@@ -216,7 +216,7 @@ BUILT_INS = git-log$X git-whatchanged$X 
 	git-read-tree$X git-commit-tree$X git-write-tree$X \
 	git-apply$X git-show-branch$X git-diff-files$X git-update-index$X \
 	git-diff-index$X git-diff-stages$X git-diff-tree$X git-cat-file$X \
-	git-fmt-merge-msg$X git-prune$X git-mv$X
+	git-fmt-merge-msg$X git-prune$X git-mv$X git-prune-packed$X
 
 # what 'all' will build and 'install' will install, in gitexecdir
 ALL_PROGRAMS = $(PROGRAMS) $(SIMPLE_PROGRAMS) $(SCRIPTS)
@@ -273,7 +273,7 @@ BUILTIN_OBJS = \
 	builtin-diff-index.o builtin-diff-stages.o builtin-diff-tree.o \
 	builtin-cat-file.o builtin-mailsplit.o builtin-stripspace.o \
 	builtin-update-ref.o builtin-fmt-merge-msg.o builtin-prune.o \
-	builtin-mv.o
+	builtin-mv.o builtin-prune-packed.o
 
 GITLIBS = $(LIB_FILE) $(XDIFF_LIB)
 EXTLIBS = -lz
diff --git a/prune-packed.c b/builtin-prune-packed.c
similarity index 96%
rename from prune-packed.c
rename to builtin-prune-packed.c
index d24b097..d0ff336 100644
--- a/prune-packed.c
+++ b/builtin-prune-packed.c
@@ -54,12 +54,10 @@ static void prune_packed_objects(void)
 	}
 }
 
-int main(int argc, char **argv)
+int cmd_prune_packed(int argc, char **argv, const char *prefix)
 {
 	int i;
 
-	setup_git_directory();
-
 	for (i = 1; i < argc; i++) {
 		const char *arg = argv[i];
 
diff --git a/builtin.h b/builtin.h
index f10d3b7..7ddfe28 100644
--- a/builtin.h
+++ b/builtin.h
@@ -20,6 +20,7 @@ extern int cmd_format_patch(int argc, co
 extern int cmd_count_objects(int argc, const char **argv, const char *prefix);
 
 extern int cmd_prune(int argc, const char **argv, const char *prefix);
+extern int cmd_prune_packed(int argc, const char **argv, const char *prefix);
 
 extern int cmd_push(int argc, const char **argv, const char *prefix);
 extern int cmd_grep(int argc, const char **argv, const char *prefix);
diff --git a/git.c b/git.c
index 110e82e..5b50762 100644
--- a/git.c
+++ b/git.c
@@ -263,6 +263,7 @@ static void handle_internal_command(int 
 		{ "fmt-merge-msg", cmd_fmt_merge_msg, NEEDS_PREFIX },
 		{ "prune", cmd_prune, NEEDS_PREFIX },
 		{ "mv", cmd_mv, NEEDS_PREFIX },
+		{ "prune-packed", cmd_prune_packed, NEEDS_PREFIX },
 	};
 	int i;
 
-- 
1.4.2.rc2.ge3c5-dirty