"Derrick Stolee via GitGitGadget" <gitgitgadget@xxxxxxxxx> writes: > diff --git a/Documentation/config/feature.txt b/Documentation/config/feature.txt > new file mode 100644 > index 0000000000..f74314ae90 > --- /dev/null > +++ b/Documentation/config/feature.txt > @@ -0,0 +1,15 @@ > +feature.*:: > +... > +* `gc.writeCommitGraph=true` enables writing the commit-graph file during > +garbage collection. > \ No newline at end of file No newline at end of file > diff --git a/Documentation/config/gc.txt b/Documentation/config/gc.txt > index 02b92b18b5..31a5fc4f75 100644 > --- a/Documentation/config/gc.txt > +++ b/Documentation/config/gc.txt > @@ -63,8 +63,8 @@ gc.writeCommitGraph:: > If true, then gc will rewrite the commit-graph file when > linkgit:git-gc[1] is run. When using `git gc --auto` > the commit-graph will be updated if housekeeping is > - required. Default is false. See linkgit:git-commit-graph[1] > - for details. > + required. Default is false, unless `feature.manyCommits` > + is enabled. See linkgit:git-commit-graph[1] for details. > > gc.logExpiry:: > If the file gc.log exists, then `git gc --auto` will print > diff --git a/repo-settings.c b/repo-settings.c > index 309577f6bc..fc05f4fbc4 100644 > --- a/repo-settings.c > +++ b/repo-settings.c > @@ -2,6 +2,8 @@ > #include "config.h" > #include "repository.h" > > +#define UPDATE_DEFAULT(s,v) do { if (s == -1) { s = v; } } while(0) A few points: 1. give 's' and 'v' a bit better name, perhaps 'slot' and 'value'? 2. "do { if ((s) == -1) { (s) = (v); } } while(0)" 3. When we learn to set default values for variables that are not boolean in the future, we will regret that we did not name it UPDATE_DEFAULT_BOOL(slot, value).