From: kristofferhaugsbakk@fastmail.com
To: git@vger.kernel.org
Cc: Kristoffer Haugsbakk <code@khaugsbakk.name>,
Jeff King <peff@peff.net>, Teng Long <dyroneteng@gmail.com>,
"D . Ben Knoble" <ben.knoble@gmail.com>
Subject: [PATCH v2 0/9] doc: --stdin on notes and core.commentChar mentions
Date: Fri, 23 May 2025 21:29:46 +0200 [thread overview]
Message-ID: <cover.1748028010.git.code@khaugsbakk.name> (raw)
In-Reply-To: <cover.1747763769.git.code@khaugsbakk.name>
From: Kristoffer Haugsbakk <code@khaugsbakk.name>
I wanted to fix `--stdin` in the git-notes(1) documentation. Then I
found some other things on that doc as well as things to do with
`core.commentChar`.
§ Changes v2
Address the feedback on v1.
I discovered that patch “doc: notes: mention comment character
configuration” was misguided since
1. Mentioning the comment character isn’t really relevant anywhere
2. The text conflates `--[no-]stripspace` with handling comment lines,
which is wrong
That patch is replaced with patches 4 and 5.
See the notes on the patches for details.
Kristoffer Haugsbakk (9):
doc: stripspace: mention where the default comes from
doc: config: mention core.commentChar on commit.cleanup
doc: notes: split out options with negated forms
doc: notes: rework --[no-]stripspace
doc: notes: remove stripspace discussion from other options
doc: notes: clearly state that --stripspace is the default
doc: notes: point out copy --stdin use with argv
doc: notes: treat --stdin equally between copy/remove
doc: notes: use stuck form throughout
Documentation/config/commit.adoc | 7 +++--
Documentation/git-notes.adoc | 51 ++++++++++++++++++-------------
Documentation/git-stripspace.adoc | 3 +-
3 files changed, 36 insertions(+), 25 deletions(-)
Interdiff against v1:
diff --git a/Documentation/git-notes.adoc b/Documentation/git-notes.adoc
index 1542850eaaa..43436daeccc 100644
--- a/Documentation/git-notes.adoc
+++ b/Documentation/git-notes.adoc
@@ -151,26 +151,18 @@ OPTIONS
Use the given note message (instead of prompting).
If multiple `-m` options are given, their values
are concatenated as separate paragraphs.
- Lines starting with `#` and empty lines other than a
- single line between paragraphs will be stripped out.
- If you wish to keep them verbatim, use `--no-stripspace`.
`-F <file>`::
`--file=<file>`::
Take the note message from the given file. Use `-` to
read the note message from the standard input.
- Lines starting with `#` and empty lines other than a
- single line between paragraphs will be stripped out.
- If you wish to keep them verbatim, use `--no-stripspace`.
`-C <object>`::
`--reuse-message=<object>`::
Take the given blob object (for example, another note) as the
note message. (Use `git notes copy <object>` instead to
- copy notes between objects.). By default, message will be
- copied verbatim, but if you wish to strip out the lines
- starting with `#` and empty lines other than a single line
- between paragraphs, use with `--stripspace` option.
+ copy notes between objects.) Implies `--no-stripspace` since
+ the default behavior is to copy the message verbatim.
`-c <object>`::
`--reedit-message=<object>`::
@@ -191,16 +183,23 @@ OPTIONS
`--stripspace`::
`--no-stripspace`::
- Strip leading and trailing whitespace from the note message.
- Also strip out empty lines other than a single line between
- paragraphs. Lines starting with the comment character
- (default `#`) will be stripped out
- in non-editor cases like `-m`, `-F` and `-C`, but not in
- editor case like `git notes edit`, `-c`, etc.
+ Clean up whitespace. Specifically (see
+ linkgit:git-stripspace[1]):
+
-See `core.commentChar` in linkgit:git-config[1].
+--
+- remove trailing whitespace from all lines
+- collapse multiple consecutive empty lines into one empty line
+- remove empty lines from the beginning and end of the input
+- add a missing `\n` to the last line if necessary.
+--
++
+`--stripspace` is the default except for
+`-C`/`--reuse-message`. However, keep in mind that this depends on the
+order of similar options. For example, for `-C <object> -m<message>`,
+`--stripspace` will be used because the default for `-m` overrides the
+previous `-C`.
-`--ref <ref>`::
+`--ref=<ref>`::
Manipulate the notes tree in _<ref>_. This overrides
`GIT_NOTES_REF` and the `core.notesRef` configuration. The ref
specifies the full refname when it begins with `refs/notes/`; when it
@@ -212,9 +211,7 @@ See `core.commentChar` in linkgit:git-config[1].
object that does not have notes attached to it.
`--stdin`::
- For `remove` and `copy`. See the respective subcommands. This
- option can be combined with object names given via the command
- line for `remove`. However, this is not the case for `copy`.
+ For `remove` and `copy`. See the respective subcommands.
`-n`::
`--dry-run`::
diff --git a/Documentation/git-stripspace.adoc b/Documentation/git-stripspace.adoc
index 1132a4cf9a9..37287f211f0 100644
--- a/Documentation/git-stripspace.adoc
+++ b/Documentation/git-stripspace.adoc
@@ -37,8 +37,8 @@ OPTIONS
-------
-s::
--strip-comments::
- Skip and remove all lines starting with a comment character (default `#`).
- See `core.commentChar` in linkgit:git-config[1].
+ Skip and remove all lines starting with a comment character
+ (`core.commentChar`, default `#`).
-c::
--comment-lines::
Range-diff against v1:
-: ----------- > 1: bf3ea7f23c0 doc: stripspace: mention where the default comes from
2: b43b78aba63 = 2: e9cf956a824 doc: config: mention core.commentChar on commit.cleanup
3: d2b6864b707 ! 3: 14dc58120e3 doc: notes: split out options with negations
@@ Metadata
Author: Kristoffer Haugsbakk <code@khaugsbakk.name>
## Commit message ##
- doc: notes: split out options with negations
+ doc: notes: split out options with negated forms
Split these out so that they are easier to search for.[1]
@@ Commit message
Signed-off-by: Kristoffer Haugsbakk <code@khaugsbakk.name>
+
+ ## Notes (series) ##
+ v2:
+ • Message: Use “negated form” since that seems more typical
+
## Documentation/git-notes.adoc ##
@@ Documentation/git-notes.adoc: OPTIONS
Allow an empty note object to be stored. The default behavior is
4: f3f54a3537f ! 4: c68a91f81ba doc: notes: mention comment character configuration
@@ Metadata
Author: Kristoffer Haugsbakk <code@khaugsbakk.name>
## Commit message ##
- doc: notes: mention comment character configuration
+ doc: notes: rework --[no-]stripspace
+
+ Document this option by copying the bullet list from git-stripspace(1).
+ A bullet list is cleaner when there are this many points to consider.
+ We also get a more standardized description of the multiple-blank-lines
+ behavior. Compare the repeating (git-notes(1)):
+
+ empty lines other than a single line between paragraphs
+
+ With (git-stripspace(1)):
+
+ multiple consecutive empty lines
+
+ And:
+
+ leading [...] whitespace
+
+ With:
+
+ empty lines from the beginning
+
+ Leading whitespace in the form of spaces (indentation) are not removed.
+ However, empty lines at the start of the message are removed.
+
+ Note that we drop the mentions of comment line handling because they are
+ wrong; this option does not control how lines which can be recognized as
+ comment lines are handled. Only interactivity controls that:
+
+ • Comment lines are stripped after editing interactively
+ • Lines which could be recognized as comment lines are left alone when
+ the message is given non-interactively
+
+ So it is misleading to document the comment line behavior on
+ this option.
+
+ Further, the text is wrong:
+
+ Lines starting with `#` will be stripped out in non-editor cases
+ like `-m`, [...]
+
+ Comment lines are still indirectly discussed on other options. We will
+ deal with them in the next commit.
Signed-off-by: Kristoffer Haugsbakk <code@khaugsbakk.name>
+
+ ## Notes (series) ##
+ v2:
+ • New
+ • Together with one other other patch replaces v1 patch “doc: notes:
+ mention comment character configuration”
+ • I figured out that mentioning the comment character/comment lines
+ doesn’t make sense here. So all attempts to rephrase “comment
+ character” or “lines that start with `#`” are gone
+
## Documentation/git-notes.adoc ##
@@ Documentation/git-notes.adoc: OPTIONS
+
+ `--stripspace`::
`--no-stripspace`::
- Strip leading and trailing whitespace from the note message.
- Also strip out empty lines other than a single line between
+- Strip leading and trailing whitespace from the note message.
+- Also strip out empty lines other than a single line between
- paragraphs. Lines starting with `#` will be stripped out
-+ paragraphs. Lines starting with the comment character
-+ (default `#`) will be stripped out
- in non-editor cases like `-m`, `-F` and `-C`, but not in
- editor case like `git notes edit`, `-c`, etc.
+- in non-editor cases like `-m`, `-F` and `-C`, but not in
+- editor case like `git notes edit`, `-c`, etc.
++ Clean up whitespace. Specifically (see
++ linkgit:git-stripspace[1]):
++
-+See `core.commentChar` in linkgit:git-config[1].
++- remove trailing whitespace from all lines
++- collapse multiple consecutive empty lines into one empty line
++- remove empty lines from the beginning and end of the input
++- add a missing `\n` to the last line if necessary.
`--ref <ref>`::
Manipulate the notes tree in _<ref>_. This overrides
1: 630ef019786 ! 5: f4755040f38 doc: stripspace: mention where the default comes from
@@ Metadata
Author: Kristoffer Haugsbakk <code@khaugsbakk.name>
## Commit message ##
- doc: stripspace: mention where the default comes from
+ doc: notes: remove stripspace discussion from other options
- Also quote `#` in line with the modern formatting convention.
+ Cleaning up whitespace in metadata is typical porcelain behavior and
+ this default does not need to be pointed out.[1] Only speak up when
+ the default `--stripspace` is not used.
+
+ Also remove all misleading mentions of comment lines in the process;
+ see the previous commit.
+
+ Also remove the period that trails the parenthetical here.
+
+ † 1: See `-F` in git-commit(1) which has nothing to say about whitespace
+ cleanup. The cleanup discussion is on `--cleanup`.
Signed-off-by: Kristoffer Haugsbakk <code@khaugsbakk.name>
## Notes (series) ##
- “modern formatting convention”
-
- It looks like characters are quoted with backticks in the commits I’ve
- seen by Jean-Noël Avila lately.
-
- ## Documentation/git-stripspace.adoc ##
-@@ Documentation/git-stripspace.adoc: OPTIONS
- -------
- -s::
- --strip-comments::
-- Skip and remove all lines starting with a comment character (default '#').
-+ Skip and remove all lines starting with a comment character (default `#`).
-+ See `core.commentChar` in linkgit:git-config[1].
+ v2:
+ • New
+ • Together with one other patch replaces v1 patch “doc: notes:
+ mention comment character configuration”
+ • I figured out that mentioning the comment character/comment lines
+ doesn’t make sense here. So all attempts to rephrase “comment
+ character” or “lines that start with `#`” are gone
+
+ ## Documentation/git-notes.adoc ##
+@@ Documentation/git-notes.adoc: OPTIONS
+ Use the given note message (instead of prompting).
+ If multiple `-m` options are given, their values
+ are concatenated as separate paragraphs.
+- Lines starting with `#` and empty lines other than a
+- single line between paragraphs will be stripped out.
+- If you wish to keep them verbatim, use `--no-stripspace`.
+
+ `-F <file>`::
+ `--file=<file>`::
+ Take the note message from the given file. Use `-` to
+ read the note message from the standard input.
+- Lines starting with `#` and empty lines other than a
+- single line between paragraphs will be stripped out.
+- If you wish to keep them verbatim, use `--no-stripspace`.
+
+ `-C <object>`::
+ `--reuse-message=<object>`::
+ Take the given blob object (for example, another note) as the
+ note message. (Use `git notes copy <object>` instead to
+- copy notes between objects.). By default, message will be
+- copied verbatim, but if you wish to strip out the lines
+- starting with `#` and empty lines other than a single line
+- between paragraphs, use with `--stripspace` option.
++ copy notes between objects.) Implies `--no-stripspace` since
++ the default behavior is to copy the message verbatim.
- -c::
- --comment-lines::
+ `-c <object>`::
+ `--reedit-message=<object>`::
-: ----------- > 6: be89c3349d2 doc: notes: clearly state that --stripspace is the default
5: cbb177479ca = 7: d8a22847a7d doc: notes: point out copy --stdin use with argv
6: 68e5eb78040 ! 8: 3e8ecf1b668 doc: notes: treat --stdin equally between copy/remove
@@ Commit message
Signed-off-by: Kristoffer Haugsbakk <code@khaugsbakk.name>
+
+ ## Notes (series) ##
+ v2:
+ • On --stdin: just refer to the respective subcommands and stop there.
+ As suggested.
+
+ Link: https://lore.kernel.org/git/xmqq34czhyz8.fsf@gitster.g/
+
## Documentation/git-notes.adoc ##
@@ Documentation/git-notes.adoc: When done, the user can either finalize the merge with
giving zero or one object from the command line, this is
@@ Documentation/git-notes.adoc: When done, the user can either finalize the merge
`prune`::
Remove all notes for non-existing/unreachable objects.
-@@ Documentation/git-notes.adoc: See `core.commentChar` in linkgit:git-config[1].
+@@ Documentation/git-notes.adoc: previous `-C`.
object that does not have notes attached to it.
`--stdin`::
- Also read the object names to remove notes from the standard
- input (there is no reason you cannot combine this with object
- names from the command line).
-+ For `remove` and `copy`. See the respective subcommands. This
-+ option can be combined with object names given via the command
-+ line for `remove`. However, this is not the case for `copy`.
++ For `remove` and `copy`. See the respective subcommands.
`-n`::
`--dry-run`::
-: ----------- > 9: 73bdcaecae5 doc: notes: use stuck form throughout
base-commit: cb96e1697ad6e54d11fc920c95f82977f8e438f8
--
2.49.0.780.g892193c3f50
next prev parent reply other threads:[~2025-05-23 19:31 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-20 17:57 [PATCH 0/6] doc: --stdin on notes and core.commentChar mentions kristofferhaugsbakk
2025-05-20 17:57 ` [PATCH 1/6] doc: stripspace: mention where the default comes from kristofferhaugsbakk
2025-05-20 19:06 ` Junio C Hamano
2025-05-21 15:04 ` Kristoffer Haugsbakk
2025-05-20 17:57 ` [PATCH 2/6] doc: config: mention core.commentChar on commit.cleanup kristofferhaugsbakk
2025-05-20 17:57 ` [PATCH 3/6] doc: notes: split out options with negations kristofferhaugsbakk
2025-05-20 19:11 ` Junio C Hamano
2025-05-21 13:14 ` Junio C Hamano
2025-05-21 14:42 ` Kristoffer Haugsbakk
2025-05-21 15:47 ` Junio C Hamano
2025-05-21 15:52 ` Kristoffer Haugsbakk
2025-05-20 17:57 ` [PATCH 4/6] doc: notes: mention comment character configuration kristofferhaugsbakk
2025-05-20 19:14 ` Junio C Hamano
2025-05-20 17:57 ` [PATCH 5/6] doc: notes: point out copy --stdin use with argv kristofferhaugsbakk
2025-05-20 19:15 ` Junio C Hamano
2025-05-20 17:57 ` [PATCH 6/6] doc: notes: treat --stdin equally between copy/remove kristofferhaugsbakk
2025-05-20 19:19 ` Junio C Hamano
2025-05-21 14:49 ` Kristoffer Haugsbakk
2025-05-21 13:19 ` D. Ben Knoble
2025-05-21 14:44 ` Kristoffer Haugsbakk
2025-05-21 15:50 ` Junio C Hamano
2025-05-23 19:29 ` kristofferhaugsbakk [this message]
2025-05-23 19:29 ` [PATCH v2 1/9] doc: stripspace: mention where the default comes from kristofferhaugsbakk
2025-05-23 19:29 ` [PATCH v2 2/9] doc: config: mention core.commentChar on commit.cleanup kristofferhaugsbakk
2025-05-23 19:29 ` [PATCH v2 3/9] doc: notes: split out options with negated forms kristofferhaugsbakk
2025-05-23 19:29 ` [PATCH v2 4/9] doc: notes: rework --[no-]stripspace kristofferhaugsbakk
2025-05-23 19:29 ` [PATCH v2 5/9] doc: notes: remove stripspace discussion from other options kristofferhaugsbakk
2025-05-23 19:29 ` [PATCH v2 6/9] doc: notes: clearly state that --stripspace is the default kristofferhaugsbakk
2025-05-23 21:36 ` Junio C Hamano
2025-05-23 19:29 ` [PATCH v2 7/9] doc: notes: point out copy --stdin use with argv kristofferhaugsbakk
2025-05-23 19:29 ` [PATCH v2 8/9] doc: notes: treat --stdin equally between copy/remove kristofferhaugsbakk
2025-05-23 21:40 ` Junio C Hamano
2025-05-23 19:29 ` [PATCH v2 9/9] doc: notes: use stuck form throughout kristofferhaugsbakk
2025-05-27 21:19 ` [PATCH v3 0/9] doc: --stdin on notes and core.commentChar mentions kristofferhaugsbakk
2025-05-27 21:19 ` [PATCH v3 1/9] doc: stripspace: mention where the default comes from kristofferhaugsbakk
2025-05-27 21:19 ` [PATCH v3 2/9] doc: config: mention core.commentChar on commit.cleanup kristofferhaugsbakk
2025-05-27 21:19 ` [PATCH v3 3/9] doc: notes: split out options with negated forms kristofferhaugsbakk
2025-05-27 21:19 ` [PATCH v3 4/9] doc: notes: rework --[no-]stripspace kristofferhaugsbakk
2025-05-27 21:19 ` [PATCH v3 5/9] doc: notes: remove stripspace discussion from other options kristofferhaugsbakk
2025-05-27 21:19 ` [PATCH v3 6/9] doc: notes: clearly state that --stripspace is the default kristofferhaugsbakk
2025-05-27 21:19 ` [PATCH v3 7/9] doc: notes: point out copy --stdin use with argv kristofferhaugsbakk
2025-05-27 21:19 ` [PATCH v3 8/9] doc: notes: treat --stdin equally between copy/remove kristofferhaugsbakk
2025-05-27 21:19 ` [PATCH v3 9/9] doc: notes: use stuck form throughout kristofferhaugsbakk
2025-05-27 22:33 ` [PATCH v3 0/9] doc: --stdin on notes and core.commentChar mentions Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1748028010.git.code@khaugsbakk.name \
--to=kristofferhaugsbakk@fastmail.com \
--cc=ben.knoble@gmail.com \
--cc=code@khaugsbakk.name \
--cc=dyroneteng@gmail.com \
--cc=git@vger.kernel.org \
--cc=peff@peff.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.