On Thu, Jan 25, 2018 at 6:02 AM, Derrick Stolee <stolee@xxxxxxxxx> wrote: > 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(+) > > 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; Putting it here instead of say the_repository makes sense as you'd want to use this feature globally. However you can still have the config different per repository (e.g. version number of the graph setting, as one might be optimized for speed and the other for file size of the .graph file or such). So not sure if we'd rather want to put this into the repository struct. But then again the other core settings aren't there either and this feature sounds like it is repository specific only in the experimental phase; later it is expected to be on everywhere? > 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; > -- > 2.16.0 >