Ralf Thielow <ralf.thielow@xxxxxxxxx> writes: > The default of the "cleanup" option in "git commit" > is not configurable. Users who don't want to use the > default have to pass this option on every commit since > there's no way to configure it. This commit introduces > a new config option "commit.cleanup" which can be used > to change the default of the "cleanup" option in > "git commit". > > Signed-off-by: Ralf Thielow <ralf.thielow@xxxxxxxxx> > --- Thanks. > Changes in v2: > - simplify implementation > - mention configuration variable in documentation of "git commit --cleanup" > - add an example usecase to documention of commit.cleanup configuration variable > - add tests > > Documentation/config.txt | 7 ++++ > Documentation/git-commit.txt | 4 +- > builtin/commit.c | 5 ++- > t/t7500/add-content-and-comment | 4 ++ > t/t7502-commit.sh | 84 +++++++++++++++++++++++++++++++++++++---- > 5 files changed, 95 insertions(+), 9 deletions(-) > create mode 100755 t/t7500/add-content-and-comment > > diff --git a/Documentation/config.txt b/Documentation/config.txt > index 53c4ca1..0452d56 100644 > --- a/Documentation/config.txt > +++ b/Documentation/config.txt > @@ -917,6 +917,13 @@ column.tag:: > Specify whether to output tag listing in `git tag` in columns. > See `column.ui` for details. > > +commit.cleanup:: > + This setting overrides the default of the `--cleanup` option in > + `git commit`. See linkgit:git-commit[1] for details. Changing the > + default can be useful if you want to use the comment character (#) > + consistently within your commit messages, in which case you would > + like to change the default to 'whitespace'. When the documentation suggests to use 'whitespace', it would be helpful to warn the readers that hints Git produces in '#'-commented section need to be removed, if they are not ment to be kept (which is 99.99% of the case). Perhaps: This setting overrides the default of the `--cleanup` option in `git commit`. Changing the default can be useful when you always want to keep lines that begin with comment character `#` in your log message, in which case you would do `git config commit.cleanup whitespace` (note that you will have to remove the help lines that begin with '#' in the commit log template yourself, if you do this). or something? > diff --git a/Documentation/git-commit.txt b/Documentation/git-commit.txt > index 7bdb039..41b27da 100644 > --- a/Documentation/git-commit.txt > +++ b/Documentation/git-commit.txt > @@ -179,7 +179,9 @@ OPTIONS > only if the message is to be edited. Otherwise only whitespace > removed. The 'verbatim' mode does not change message at all, > 'whitespace' removes just leading/trailing whitespace lines > - and 'strip' removes both whitespace and commentary. > + and 'strip' removes both whitespace and commentary. The default > + can be changed by the 'commit.cleanup' configuration variable > + (see linkgit:git-config[1]). Nicely written. > --- a/builtin/commit.c > +++ b/builtin/commit.c > @@ -103,7 +103,7 @@ static enum { > CLEANUP_NONE, > CLEANUP_ALL > } cleanup_mode; > -static char *cleanup_arg; > +static const char *cleanup_arg; > > static enum commit_whence whence; > static int use_editor = 1, include_status = 1; > @@ -966,6 +966,7 @@ static const char *read_commit_message(const char *name) > return out; > } > > + > static int parse_and_validate_options(int argc, const char *argv[], > const struct option *options, > const char * const usage[], Don't add an extra blank line, please. > @@ -1320,6 +1321,8 @@ static int git_commit_config(const char *k, const char *v, void *cb) > include_status = git_config_bool(k, v); > return 0; > } > + if (!strcmp(k, "commit.cleanup")) > + return git_config_string(&cleanup_arg, k, v); Nice. > diff --git a/t/t7500/add-content-and-comment b/t/t7500/add-content-and-comment > new file mode 100755 > index 0000000..988f5e9 > --- /dev/null > +++ b/t/t7500/add-content-and-comment > @@ -0,0 +1,4 @@ > +#!/bin/sh > +echo "commit message" >> "$1" > +echo "# comment" >> "$1" > +exit 0 > \ No newline at end of file Have newline at end of file, please. > diff --git a/t/t7502-commit.sh b/t/t7502-commit.sh > index 1a5cb69..b1c7648 100755 > --- a/t/t7502-commit.sh > +++ b/t/t7502-commit.sh > @@ -4,6 +4,15 @@ test_description='git commit porcelain-ish' > +... > +' > + Nicely done. Thanks. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html