diff options
author | Junio C Hamano <gitster@pobox.com> | 2024-03-15 12:43:58 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2024-03-15 16:07:37 -0700 |
commit | fbad334db9cff30cdf1fe3d498dec737bfae38df (patch) | |
tree | af08f0a5f5c0a7397344084df6a9a1d7106ee66d /Documentation | |
parent | 42d5c033945e4fc41d7268bfe4284d37651986b8 (diff) | |
download | git-fbad334db9cff30cdf1fe3d498dec737bfae38df.tar.gz |
config: fix --comment formatting
When git adds comments itself (like "rebase -i" todo list and
"commit -e" log message editor), it always gives a comment
introducer "#" followed by a Space before the message, except for
the recently introduced "git config --comment", where the users are
forced to say " this is my comment" if they want to add their
comment in this usual format; otherwise their comment string will
end up without a space after the "#".
Make it more ergonomic, while keeping it possible to also use this
unusual style, by massaging the comment string at the UI layer with
a set of simple rules:
* If the given comment string begins with '#', it is passed intact.
* Otherwise, "# " is prefixed.
* A string with LF in it cannot be used as a comment string.
Right now there is only one "front-end" that accepts end-user
comment string and calls the underlying machinery to add or modify
configuration file with comments, but to make sure that the future
callers perform similar massaging as they see fit, add a sanity
check logic in git_config_set_multivar_in_file_gently(), which is
the single choke point in the codepaths that consumes the comment
string.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/git-config.txt | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/Documentation/git-config.txt b/Documentation/git-config.txt index e608d5ffef..af374ee2e0 100644 --- a/Documentation/git-config.txt +++ b/Documentation/git-config.txt @@ -9,9 +9,9 @@ git-config - Get and set repository or global options SYNOPSIS -------- [verse] -'git config' [<file-option>] [--type=<type>] [--comment=<value>] [--fixed-value] [--show-origin] [--show-scope] [-z|--null] <name> [<value> [<value-pattern>]] -'git config' [<file-option>] [--type=<type>] [--comment=<value>] --add <name> <value> -'git config' [<file-option>] [--type=<type>] [--comment=<value>] [--fixed-value] --replace-all <name> <value> [<value-pattern>] +'git config' [<file-option>] [--type=<type>] [--comment=<message>] [--fixed-value] [--show-origin] [--show-scope] [-z|--null] <name> [<value> [<value-pattern>]] +'git config' [<file-option>] [--type=<type>] [--comment=<message>] --add <name> <value> +'git config' [<file-option>] [--type=<type>] [--comment=<message>] [--fixed-value] --replace-all <name> <value> [<value-pattern>] 'git config' [<file-option>] [--type=<type>] [--show-origin] [--show-scope] [-z|--null] [--fixed-value] --get <name> [<value-pattern>] 'git config' [<file-option>] [--type=<type>] [--show-origin] [--show-scope] [-z|--null] [--fixed-value] --get-all <name> [<value-pattern>] 'git config' [<file-option>] [--type=<type>] [--show-origin] [--show-scope] [-z|--null] [--fixed-value] [--name-only] --get-regexp <name-regex> [<value-pattern>] @@ -87,10 +87,11 @@ OPTIONS values. This is the same as providing '^$' as the `value-pattern` in `--replace-all`. ---comment <value>:: - Append a comment to new or modified lines. A '#' character will be - unconditionally prepended to the value. The value must not contain - linefeed characters (no multi-line comments are permitted). +--comment <message>:: + Append a comment at the end of new or modified lines. + Unless _<message>_ begins with "#", a string "# " (hash + followed by a space) is prepended to it. The _<message>_ must not + contain linefeed characters (no multi-line comments are permitted). --get:: Get the value for a given key (optionally filtered by a regex |