build-in git-mktree
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano committed
May 10, 2009 at 10:28 UTC
633e3556ccbcc7e443f5e9194c4a830181696ef0
4 files changed
+10
-12
Makefile
+1
-1
@@ -332,7 +332,6 @@ PROGRAMS += git-index-pack$X
332
PROGRAMS += git-merge-index$X
333
PROGRAMS += git-merge-tree$X
334
PROGRAMS += git-mktag$X
335
-PROGRAMS += git-mktree$X
335
PROGRAMS += git-pack-redundant$X
336
PROGRAMS += git-patch-id$X
337
PROGRAMS += git-shell$X
@@ -586,6 +585,7 @@ BUILTIN_OBJS += builtin-merge-base.o
585
BUILTIN_OBJS += builtin-merge-file.o
586
BUILTIN_OBJS += builtin-merge-ours.o
587
BUILTIN_OBJS += builtin-merge-recursive.o
588
+BUILTIN_OBJS += builtin-mktree.o
589
BUILTIN_OBJS += builtin-mv.o
590
BUILTIN_OBJS += builtin-name-rev.o
591
BUILTIN_OBJS += builtin-pack-objects.o
builtin-mktree.c
renamed
+7
-11
@@ -1,12 +1,11 @@
1
/*
2
* GIT - the stupid content tracker
3
*
4
- * Copyright (c) Junio C Hamano, 2006
4
+ * Copyright (c) Junio C Hamano, 2006, 2009
5
*/
6
-#include "cache.h"
6
+#include "builtin.h"
7
#include "quote.h"
8
#include "tree.h"
9
-#include "exec_cmd.h"
9
10
static struct treeent {
11
unsigned mode;
@@ -64,19 +63,15 @@ static void write_tree(unsigned char *sha1)
63
64
static const char mktree_usage[] = "git mktree [-z]";
65
67
-int main(int ac, char **av)
66
+int cmd_mktree(int ac, const char **av, const char *prefix)
67
{
68
struct strbuf sb = STRBUF_INIT;
69
struct strbuf p_uq = STRBUF_INIT;
70
unsigned char sha1[20];
71
int line_termination = '\n';
72
74
- git_extract_argv0_path(av[0]);
75
-
76
- setup_git_directory();
77
-
73
while ((1 < ac) && av[1][0] == '-') {
79
- char *arg = av[1];
74
+ const char *arg = av[1];
75
if (!strcmp("-z", arg))
76
line_termination = 0;
77
else
@@ -92,8 +87,9 @@ int main(int ac, char **av)
87
char *path;
88
89
ptr = sb.buf;
95
- /* Input is non-recursive ls-tree output format
96
- * mode SP type SP sha1 TAB name
90
+ /*
91
+ * Read non-recursive ls-tree output format:
92
+ * mode SP type SP sha1 TAB name
93
*/
94
mode = strtoul(ptr, &ntr, 8);
95
if (ptr == ntr || !ntr || *ntr != ' ')
builtin.h
+1
@@ -72,6 +72,7 @@ extern int cmd_merge_base(int argc, const char **argv, const char *prefix);
72
extern int cmd_merge_ours(int argc, const char **argv, const char *prefix);
73
extern int cmd_merge_file(int argc, const char **argv, const char *prefix);
74
extern int cmd_merge_recursive(int argc, const char **argv, const char *prefix);
75
+extern int cmd_mktree(int argc, const char **argv, const char *prefix);
76
extern int cmd_mv(int argc, const char **argv, const char *prefix);
77
extern int cmd_name_rev(int argc, const char **argv, const char *prefix);
78
extern int cmd_pack_objects(int argc, const char **argv, const char *prefix);
git.c
+1
@@ -327,6 +327,7 @@ static void handle_internal_command(int argc, const char **argv)
327
{ "merge-ours", cmd_merge_ours, RUN_SETUP },
328
{ "merge-recursive", cmd_merge_recursive, RUN_SETUP | NEED_WORK_TREE },
329
{ "merge-subtree", cmd_merge_recursive, RUN_SETUP | NEED_WORK_TREE },
330
+ { "mktree", cmd_mktree, RUN_SETUP },
331
{ "mv", cmd_mv, RUN_SETUP | NEED_WORK_TREE },
332
{ "name-rev", cmd_name_rev, RUN_SETUP },
333
{ "pack-objects", cmd_pack_objects, RUN_SETUP },