make "git hash-object" a built-in
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 22 Jan 2010 03:50:11 +0000 (19:50 -0800)
committerJunio C Hamano <gitster@pobox.com>
Fri, 22 Jan 2010 04:07:06 +0000 (20:07 -0800)
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Makefile
builtin-hash-object.c [moved from hash-object.c with 97% similarity]
builtin.h
git.c

index 969adc7e200d928db78a457b61e2e3109454f23d..6e7431e5b368aad0b903cacd157580eda231346c 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -387,7 +387,6 @@ EXTRA_PROGRAMS =
 # ... and all the rest that could be moved out of bindir to gitexecdir
 PROGRAMS += $(EXTRA_PROGRAMS)
 PROGRAMS += git-fast-import$X
-PROGRAMS += git-hash-object$X
 PROGRAMS += git-imap-send$X
 PROGRAMS += git-index-pack$X
 PROGRAMS += git-merge-index$X
@@ -658,6 +657,7 @@ BUILTIN_OBJS += builtin-for-each-ref.o
 BUILTIN_OBJS += builtin-fsck.o
 BUILTIN_OBJS += builtin-gc.o
 BUILTIN_OBJS += builtin-grep.o
+BUILTIN_OBJS += builtin-hash-object.o
 BUILTIN_OBJS += builtin-help.o
 BUILTIN_OBJS += builtin-init-db.o
 BUILTIN_OBJS += builtin-log.o
similarity index 97%
rename from hash-object.c
rename to builtin-hash-object.c
index 9455dd0709aeb81436ef2e3e36422578d66ce8e7..6a5f5b5f0eaf06b29a4e6afc3335618dc5ac5de8 100644 (file)
@@ -73,17 +73,14 @@ static const struct option hash_object_options[] = {
        OPT_END()
 };
 
-int main(int argc, const char **argv)
+int cmd_hash_object(int argc, const char **argv, const char *prefix)
 {
        int i;
-       const char *prefix = NULL;
        int prefix_length = -1;
        const char *errstr = NULL;
 
        type = blob_type;
 
-       git_extract_argv0_path(argv[0]);
-
        argc = parse_options(argc, argv, NULL, hash_object_options,
                             hash_object_usage, 0);
 
index 0936ad26679a398069ffa3039d203a70317e25eb..f525e92a28f7bba9f2c1836cb06cdbae241c7050 100644 (file)
--- a/builtin.h
+++ b/builtin.h
@@ -55,6 +55,7 @@ extern int cmd_fsck(int argc, const char **argv, const char *prefix);
 extern int cmd_gc(int argc, const char **argv, const char *prefix);
 extern int cmd_get_tar_commit_id(int argc, const char **argv, const char *prefix);
 extern int cmd_grep(int argc, const char **argv, const char *prefix);
+extern int cmd_hash_object(int argc, const char **argv, const char *prefix);
 extern int cmd_help(int argc, const char **argv, const char *prefix);
 extern int cmd_http_fetch(int argc, const char **argv, const char *prefix);
 extern int cmd_init_db(int argc, const char **argv, const char *prefix);
diff --git a/git.c b/git.c
index 15b13bd1b9748b7daf360d43af87d6eb901e8c4c..c13ec727311777575340524cd8654b9f562d355a 100644 (file)
--- a/git.c
+++ b/git.c
@@ -318,6 +318,7 @@ static void handle_internal_command(int argc, const char **argv)
                { "gc", cmd_gc, RUN_SETUP },
                { "get-tar-commit-id", cmd_get_tar_commit_id },
                { "grep", cmd_grep, USE_PAGER },
+               { "hash-object", cmd_hash_object },
                { "help", cmd_help },
                { "init", cmd_init_db },
                { "init-db", cmd_init_db },