summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2008-09-09 01:27:08 -0700
committerJunio C Hamano <gitster@pobox.com>2008-09-09 09:27:45 -0700
commitbe5908aed35d1c129f1ea38913b230ee1927361b (patch)
tree74452643d9c35a663c91848a28a7ca4f5b7f0c20
parent90b4a71c493bf24f11b5edee8a519110624a6bea (diff)
downloadgit-be5908aed35d1c129f1ea38913b230ee1927361b.tar.gz
receive-pack: make it a builtin
It is a good thing to do in general, but more importantly, transport routines can only be used by built-ins, which is what I'll be adding next. Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--Makefile2
-rw-r--r--builtin-receive-pack.c (renamed from receive-pack.c)6
-rw-r--r--builtin.h1
-rw-r--r--git.c1
4 files changed, 6 insertions, 4 deletions
diff --git a/Makefile b/Makefile
index f4c31c8714..f9c54ffd2f 100644
--- a/Makefile
+++ b/Makefile
@@ -294,7 +294,6 @@ PROGRAMS += git-mktag$X
PROGRAMS += git-mktree$X
PROGRAMS += git-pack-redundant$X
PROGRAMS += git-patch-id$X
-PROGRAMS += git-receive-pack$X
PROGRAMS += git-send-pack$X
PROGRAMS += git-shell$X
PROGRAMS += git-show-index$X
@@ -546,6 +545,7 @@ BUILTIN_OBJS += builtin-prune-packed.o
BUILTIN_OBJS += builtin-prune.o
BUILTIN_OBJS += builtin-push.o
BUILTIN_OBJS += builtin-read-tree.o
+BUILTIN_OBJS += builtin-receive-pack.o
BUILTIN_OBJS += builtin-reflog.o
BUILTIN_OBJS += builtin-remote.o
BUILTIN_OBJS += builtin-rerere.o
diff --git a/receive-pack.c b/builtin-receive-pack.c
index b81678a970..6d6027ead1 100644
--- a/receive-pack.c
+++ b/builtin-receive-pack.c
@@ -462,14 +462,14 @@ static int delete_only(struct command *cmd)
return 1;
}
-int main(int argc, char **argv)
+int cmd_receive_pack(int argc, const char **argv, const char *prefix)
{
int i;
char *dir = NULL;
argv++;
for (i = 1; i < argc; i++) {
- char *arg = *argv++;
+ const char *arg = *argv++;
if (*arg == '-') {
/* Do flag handling here */
@@ -477,7 +477,7 @@ int main(int argc, char **argv)
}
if (dir)
usage(receive_pack_usage);
- dir = arg;
+ dir = xstrdup(arg);
}
if (!dir)
usage(receive_pack_usage);
diff --git a/builtin.h b/builtin.h
index e67cb2090e..5d7cdca70c 100644
--- a/builtin.h
+++ b/builtin.h
@@ -78,6 +78,7 @@ 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_read_tree(int argc, const char **argv, const char *prefix);
+extern int cmd_receive_pack(int argc, const char **argv, const char *prefix);
extern int cmd_reflog(int argc, const char **argv, const char *prefix);
extern int cmd_remote(int argc, const char **argv, const char *prefix);
extern int cmd_config(int argc, const char **argv, const char *prefix);
diff --git a/git.c b/git.c
index adf7352409..2f5b4d72ee 100644
--- a/git.c
+++ b/git.c
@@ -328,6 +328,7 @@ static void handle_internal_command(int argc, const char **argv)
{ "prune-packed", cmd_prune_packed, RUN_SETUP },
{ "push", cmd_push, RUN_SETUP },
{ "read-tree", cmd_read_tree, RUN_SETUP },
+ { "receive-pack", cmd_receive_pack },
{ "reflog", cmd_reflog, RUN_SETUP },
{ "remote", cmd_remote, RUN_SETUP },
{ "repo-config", cmd_config },