2 * GIT - The information manager from hell
4 * Copyright (C) Linus Torvalds, 2005
9 #include "cache-tree.h"
11 static const char write_tree_usage
[] =
12 "git-write-tree [--missing-ok] [--prefix=<prefix>/]";
14 int cmd_write_tree(int argc
, const char **argv
, const char *unused_prefix
)
16 int missing_ok
= 0, ret
;
17 const char *prefix
= NULL
;
18 unsigned char sha1
[20];
19 const char *me
= "git-write-tree";
21 git_config(git_default_config
, NULL
);
23 const char *arg
= argv
[1];
24 if (!strcmp(arg
, "--missing-ok"))
26 else if (!prefixcmp(arg
, "--prefix="))
29 usage(write_tree_usage
);
34 die("too many options");
36 ret
= write_cache_as_tree(sha1
, missing_ok
, prefix
);
39 printf("%s\n", sha1_to_hex(sha1
));
41 case WRITE_TREE_UNREADABLE_INDEX
:
42 die("%s: error reading the index", me
);
44 case WRITE_TREE_UNMERGED_INDEX
:
45 die("%s: error building trees; the index is unmerged?", me
);
47 case WRITE_TREE_PREFIX_ERROR
:
48 die("%s: prefix %s not found", me
, prefix
);