Derrick Stolee <stolee@xxxxxxxxx> writes: > The packed graph feature is controlled by the new core.graph config > setting. This defaults to 0, so the feature is opt-in. > > The intention of core.graph is that a user can always stop checking > for or parsing packed graph files if core.graph=0. > > Signed-off-by: Derrick Stolee <dstolee@xxxxxxxxxxxxx> > --- > Documentation/config.txt | 3 +++ > cache.h | 1 + > config.c | 5 +++++ > environment.c | 1 + > 4 files changed, 10 insertions(+) Before you get too married to the name "graph", is it reasonable to assume that the commit ancestry graph is the primary "graph" that should come to users' minds when a simple word "graph" is used in the context of discussing Git? I suspect not. Let's not just call this "core.graph" and "packed-graph", and in addition give some adjective before "graph". > diff --git a/Documentation/config.txt b/Documentation/config.txt > index 0e25b2c92b..e7b98fa14f 100644 > --- a/Documentation/config.txt > +++ b/Documentation/config.txt > @@ -898,6 +898,9 @@ core.notesRef:: > This setting defaults to "refs/notes/commits", and it can be overridden by > the `GIT_NOTES_REF` environment variable. See linkgit:git-notes[1]. > > +core.graph:: > + Enable git commit graph feature. Allows writing and reading from .graph files. > + > core.sparseCheckout:: > Enable "sparse checkout" feature. See section "Sparse checkout" in > linkgit:git-read-tree[1] for more information. > diff --git a/cache.h b/cache.h > index d8b975a571..655a81ac90 100644 > --- a/cache.h > +++ b/cache.h > @@ -825,6 +825,7 @@ extern char *git_replace_ref_base; > extern int fsync_object_files; > extern int core_preload_index; > extern int core_apply_sparse_checkout; > +extern int core_graph; > extern int precomposed_unicode; > extern int protect_hfs; > extern int protect_ntfs; > diff --git a/config.c b/config.c > index e617c2018d..fee90912d8 100644 > --- a/config.c > +++ b/config.c > @@ -1223,6 +1223,11 @@ static int git_default_core_config(const char *var, const char *value) > return 0; > } > > + if (!strcmp(var, "core.graph")) { > + core_graph = git_config_bool(var, value); > + return 0; > + } > + > if (!strcmp(var, "core.sparsecheckout")) { > core_apply_sparse_checkout = git_config_bool(var, value); > return 0; > diff --git a/environment.c b/environment.c > index 63ac38a46f..0c56a3d869 100644 > --- a/environment.c > +++ b/environment.c > @@ -61,6 +61,7 @@ enum object_creation_mode object_creation_mode = OBJECT_CREATION_MODE; > char *notes_ref_name; > int grafts_replace_parents = 1; > int core_apply_sparse_checkout; > +int core_graph; > int merge_log_config = -1; > int precomposed_unicode = -1; /* see probe_utf8_pathname_composition() */ > unsigned long pack_size_limit_cfg;