|
|
@@ -8,7 +8,7 @@ |
|
|
|
static char const * const builtin_commit_graph_usage[] = { |
|
|
|
N_("git commit-graph [--object-dir <objdir>]"), |
|
|
|
N_("git commit-graph read [--object-dir <objdir>]"), |
|
|
|
N_("git commit-graph write [--object-dir <objdir>] [--stdin-packs]"), |
|
|
|
N_("git commit-graph write [--object-dir <objdir>] [--stdin-packs|--stdin-commits]"), |
|
|
|
NULL |
|
|
|
}; |
|
|
|
|
|
|
@@ -18,13 +18,14 @@ static const char * const builtin_commit_graph_read_usage[] = { |
|
|
|
}; |
|
|
|
|
|
|
|
static const char * const builtin_commit_graph_write_usage[] = { |
|
|
|
N_("git commit-graph write [--object-dir <objdir>] [--stdin-packs]"), |
|
|
|
N_("git commit-graph write [--object-dir <objdir>] [--stdin-packs|--stdin-commits]"), |
|
|
|
NULL |
|
|
|
}; |
|
|
|
|
|
|
|
static struct opts_commit_graph { |
|
|
|
const char *obj_dir; |
|
|
|
int stdin_packs; |
|
|
|
int stdin_commits; |
|
|
|
} opts; |
|
|
|
|
|
|
|
static int graph_read(int argc, const char **argv) |
|
|
@@ -79,6 +80,8 @@ static int graph_write(int argc, const char **argv) |
|
|
|
{ |
|
|
|
const char **pack_indexes = NULL; |
|
|
|
int packs_nr = 0; |
|
|
|
const char **commit_hex = NULL; |
|
|
|
int commits_nr = 0; |
|
|
|
const char **lines = NULL; |
|
|
|
int lines_nr = 0; |
|
|
|
int lines_alloc = 0; |
|
|
@@ -89,6 +92,8 @@ static int graph_write(int argc, const char **argv) |
|
|
|
N_("The object directory to store the graph")), |
|
|
|
OPT_BOOL(0, "stdin-packs", &opts.stdin_packs, |
|
|
|
N_("scan pack-indexes listed by stdin for commits")), |
|
|
|
OPT_BOOL(0, "stdin-commits", &opts.stdin_commits, |
|
|
|
N_("start walk at commits listed by stdin")), |
|
|
|
OPT_END(), |
|
|
|
}; |
|
|
|
|
|
|
@@ -96,10 +101,12 @@ static int graph_write(int argc, const char **argv) |
|
|
|
builtin_commit_graph_write_options, |
|
|
|
builtin_commit_graph_write_usage, 0); |
|
|
|
|
|
|
|
if (opts.stdin_packs && opts.stdin_commits) |
|
|
|
die(_("cannot use both --stdin-commits and --stdin-packs")); |
|
|
|
if (!opts.obj_dir) |
|
|
|
opts.obj_dir = get_object_directory(); |
|
|
|
|
|
|
|
if (opts.stdin_packs) { |
|
|
|
if (opts.stdin_packs || opts.stdin_commits) { |
|
|
|
struct strbuf buf = STRBUF_INIT; |
|
|
|
lines_nr = 0; |
|
|
|
lines_alloc = 128; |
|
|
@@ -110,13 +117,21 @@ static int graph_write(int argc, const char **argv) |
|
|
|
lines[lines_nr++] = strbuf_detach(&buf, NULL); |
|
|
|
} |
|
|
|
|
|
|
|
pack_indexes = lines; |
|
|
|
packs_nr = lines_nr; |
|
|
|
if (opts.stdin_packs) { |
|
|
|
pack_indexes = lines; |
|
|
|
packs_nr = lines_nr; |
|
|
|
} |
|
|
|
if (opts.stdin_commits) { |
|
|
|
commit_hex = lines; |
|
|
|
commits_nr = lines_nr; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
write_commit_graph(opts.obj_dir, |
|
|
|
pack_indexes, |
|
|
|
packs_nr); |
|
|
|
packs_nr, |
|
|
|
commit_hex, |
|
|
|
commits_nr); |
|
|
|
|
|
|
|
return 0; |
|
|
|
} |
|
|
|