mirror of
https://github.com/git/git.git
synced 2025-12-12 20:36:24 +01:00
breaking-changes: deprecate support for core.commentString=auto
When "core.commentString" is set to "auto" then "git commit" will
automatically select the comment character ensuring that it is not the
first character on any of the lines in the commit message. This was
introduced by commit 84c9dc2c5a (commit: allow core.commentChar=auto
for character auto selection, 2014-05-17). The motivation seems to be
to avoid commenting out lines from the existing message when amending
a commit that was created with a message from a file.
Unfortunately this feature does not work with:
* commit message templates that contain comments.
* prepare-commit-msg hooks that introduce comments.
* "git commit --cleanup=strip --edit -F <file>" which means that it
is incompatible with
- the "fixup" and "squash" commands of "git rebase -i" as the
comments added by those commands are then treated as part of
the commit message.
- the conflict comments added to the commit message by "git
cherry-pick", "git rebase" etc. as these comments are then
treated as part of the commit message.
It is also ignored by "git notes" when amending a note.
The issues with comments coming from a template, hook or file are a
consequence of the design of this feature and are therefore hard to
fix.
As the costs of this feature outweigh the benefits, deprecate it and
remove it in Git 3.0. If someone comes up with some patches that fix
all the issues in a maintainable way then I'd be happy to see this
change reverted.
The next commits will add a warning and some advice for users on how
they can update their config settings.
Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
084681b1b0
commit
fdae4114a6
@@ -239,6 +239,11 @@ These features will be removed.
|
||||
+
|
||||
The command will be removed.
|
||||
|
||||
* Support for `core.commentString=auto` has been deprecated and will
|
||||
be removed in Git 3.0.
|
||||
+
|
||||
cf. <xmqqa59i45wc.fsf@gitster.g>
|
||||
|
||||
== Superseded features that will not be deprecated
|
||||
|
||||
Some features have gained newer replacements that aim to improve the design in
|
||||
|
||||
@@ -531,9 +531,25 @@ core.commentString::
|
||||
commented, and removes them after the editor returns
|
||||
(default '#').
|
||||
+
|
||||
If set to "auto", `git-commit` would select a character that is not
|
||||
ifndef::with-breaking-changes[]
|
||||
If set to "auto", `git-commit` will select a character that is not
|
||||
the beginning character of any line in existing commit messages.
|
||||
Support for this value is deprecated and will be removed in Git 3.0
|
||||
due to the following limitations:
|
||||
+
|
||||
--
|
||||
* It is incompatible with adding comments in a commit message
|
||||
template. This includes the conflicts comments added to
|
||||
the commit message by `cherry-pick`, `merge`, `rebase` and
|
||||
`revert`.
|
||||
* It is incompatible with adding comments to the commit message
|
||||
in the `prepare-commit-msg` hook.
|
||||
* It is incompatible with the `fixup` and `squash` commands when
|
||||
rebasing,
|
||||
* It is not respected by `git notes`
|
||||
--
|
||||
+
|
||||
endif::with-breaking-changes[]
|
||||
Note that these two variables are aliases of each other, and in modern
|
||||
versions of Git you are free to use a string (e.g., `//` or `⁑⁕⁑`) with
|
||||
`commentChar`. Versions of Git prior to v2.45.0 will ignore
|
||||
|
||||
Reference in New Issue
Block a user