commit-graph: create git-commit-graph builtin

Teach git the 'commit-graph' builtin that will be used for writing and
reading packed graph files. The current implementation is mostly
empty, except for an '--object-dir' option.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Derrick Stolee
2018-04-02 16:34:18 -04:00
committed by Junio C Hamano
parent ae30d7b115
commit 4ce58ee38d
8 changed files with 53 additions and 0 deletions

36
builtin/commit-graph.c Normal file
View File

@ -0,0 +1,36 @@
#include "builtin.h"
#include "config.h"
#include "parse-options.h"
static char const * const builtin_commit_graph_usage[] = {
N_("git commit-graph [--object-dir <objdir>]"),
NULL
};
static struct opts_commit_graph {
const char *obj_dir;
} opts;
int cmd_commit_graph(int argc, const char **argv, const char *prefix)
{
static struct option builtin_commit_graph_options[] = {
OPT_STRING(0, "object-dir", &opts.obj_dir,
N_("dir"),
N_("The object directory to store the graph")),
OPT_END(),
};
if (argc == 2 && !strcmp(argv[1], "-h"))
usage_with_options(builtin_commit_graph_usage,
builtin_commit_graph_options);
git_config(git_default_config, NULL);
argc = parse_options(argc, argv, prefix,
builtin_commit_graph_options,
builtin_commit_graph_usage,
PARSE_OPT_STOP_AT_NON_OPTION);
usage_with_options(builtin_commit_graph_usage,
builtin_commit_graph_options);
}