Ralf Thielow <[email protected]> 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 <[email protected]>
> ---
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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html