Add configuration options for some commonly used command-line options
PATCH 1/1 Add configuration options for some commonly used command-line options
This patch adds a 'showmerges' config. option for git-log. This option determines whether the log should contain merge commits or not. In essence, if this option is set to true, git-log will be run as 'git-log --no-merges'.
--- Documentation/config.txt | 3 +++ builtin/log.c | 8 ++++++++ 2 files changed, 11 insertions(+)
Documentation/config.txt +3 -0
@@ -1735,6 +1735,9 @@ log.showroot:: Tools like linkgit:git-log[1] or linkgit:git-whatchanged[1], which normally hide the root commit will now show it. True by default. +log.showmerges:: + If true, merges will be shown in the log list. True by default. + log.mailmap:: If true, makes linkgit:git-log[1], linkgit:git-show[1], and linkgit:git-whatchanged[1] assume `--use-mailmap`.
builtin/log.c +8 -0
@@ -31,6 +31,7 @@ static const char *default_date_mode = NULL;static int default_abbrev_commit;static int default_show_root =1 ; +static int default_max_parents =-1 ;static int decoration_style;static int decoration_given;static int use_mailmap_config;
@@ -108,6 +109,7 @@ static void cmd_log_init_defaults(struct rev_info *rev) rev->diffopt.stat_graph_width =-1 ;/* respect statGraphWidth config */ rev->abbrev_commit = default_abbrev_commit; rev->show_root_diff = default_show_root; + rev->max_parents = default_max_parents; rev->subject_prefix = fmt_patch_subject_prefix;DIFF_OPT_SET (&rev->diffopt,ALLOW_TEXTCONV );
@@ -390,6 +392,12 @@ static int git_log_config(const char *var, const char *value, void *cb) default_show_root =git_config_bool (var, value);return 0 ; } + +if (!strcmp (var,"log.showmerges" )) { + default_max_parents =git_config_bool (var, value) ?-1 :1 ; +return 0 ; + } +if (skip_prefix (var,"color.decorate." , &slot_name))return parse_decorate_color_config (var, slot_name, value);if (!strcmp (var,"log.mailmap" )) {
Signature · 1 line
1.9.1
Quoted 3 lines · Koosha Khajehmoogahi
This patch adds a 'showmerges' config. option for git-log. This option determines whether the log should contain merge commits or not. In essence, if this option is set to true,
Sorry, this should be 'false'.
Quoted 56 lines
git-log will be run as 'git-log --no-merges'.
Signed-off-by Koosha Khajehmoogahi <[email protected]>--- Documentation/config.txt | 3 +++ builtin/log.c | 8 ++++++++ 2 files changed, 11 insertions(+)Documentation/config.txt +3
-0@@ -1735,6 +1735,9 @@ log.showroot:: Tools like linkgit:git-log[1] or linkgit:git-whatchanged[1], which normally hide the root commit will now show it. True by default. +log.showmerges:: + If true, merges will be shown in the log list. True by default. + log.mailmap:: If true, makes linkgit:git-log[1], linkgit:git-show[1], and linkgit:git-whatchanged[1] assume `--use-mailmap`.builtin/log.c +8
-0@@ -31,6 +31,7 @@ static const char *default_date_mode = NULL;static int default_abbrev_commit;static int default_show_root =1 ; +static int default_max_parents =-1 ;static int decoration_style;static int decoration_given;static int use_mailmap_config;@@ -108,6 +109,7 @@ static void cmd_log_init_defaults(struct rev_info *rev) rev->diffopt.stat_graph_width =-1 ;/* respect statGraphWidth config */ rev->abbrev_commit = default_abbrev_commit; rev->show_root_diff = default_show_root; + rev->max_parents = default_max_parents; rev->subject_prefix = fmt_patch_subject_prefix;DIFF_OPT_SET (&rev->diffopt,ALLOW_TEXTCONV );@@ -390,6 +392,12 @@ static int git_log_config(const char *var, const char *value, void *cb) default_show_root =git_config_bool (var, value);return 0 ; } + +if (!strcmp (var,"log.showmerges" )) { + default_max_parents =git_config_bool (var, value) ?-1 :1 ; +return 0 ; + } +if (skip_prefix (var,"color.decorate." , &slot_name))return parse_decorate_color_config (var, slot_name, value);if (!strcmp (var,"log.mailmap" )) {
Signature · 1 line
Koosha
Quoted 16 lines · Koosha Khajehmoogahi
This patch adds a 'showmerges' config. option for git-log. This option determines whether the log should contain merge commits or not. In essence, if this option is set to true, git-log will be run as 'git-log --no-merges'.
Signed-off-by Koosha Khajehmoogahi <[email protected]>--- Documentation/config.txt | 3 +++ builtin/log.c | 8 ++++++++ 2 files changed, 11 insertions(+)Documentation/config.txt +0
-0
Documentation/config.txt log.showroot:: · line 1739
Quoted 5 lines
Documentation/config.txt +2
-0@@ -1735,6 +1735,9 @@ log.showroot:: Tools like linkgit:git-log[1] or linkgit:git-whatchanged[1], which normally hide the root commit will now show it. True by default. +log.showmerges:: + If true, merges will be shown in the log list. True by default.
When you have to help your colleague by inspecting the history in her repository, and your colleague has this set to false, and you do want your "git log" to show merge commits, how would you override this setting?
git log --merges
is not it.
Avoid introducing a configuration that users cannot override it from the command line. If there is a way to override (and for the purpose of this discussion, "git -c log.showmerges=yes" does not count), document it here.
Tests need to make sure that (1) with configuration without command line override, the various settings of the variable give behaviour you wanted to give, and (2) with configuration with command line override, the values set to the variable does not have any effect to the behaviour (i.e. the command line override wins).
Thanks.