* [PATCH] gitglossary: fix indentation of sub-lists
@ 2026-04-11 19:06 Jeff King
2026-04-11 20:34 ` Kristoffer Haugsbakk
0 siblings, 1 reply; 7+ messages in thread
From: Jeff King @ 2026-04-11 19:06 UTC (permalink / raw)
To: git
The glossary entry is a list of terms and their definitions, so
multi-paragraph definitions need "+" continuation lines to indicate
that they are part of a single entry.
When an entry contains a sub-list (say, a bulleted list), the final "+"
may become ambiguous: is it connecting the next paragraph to the final
entry of the sub-list, or to the original list of definition paragraphs?
Asciidoc generally connects it to the former, even when we mean the
latter, and you end up with the next paragraph indented incorrectly,
like this:
glob
...defines glob...
Two consecutive asterisks ("**") in patterns matched
against full pathname may have special meaning:
- ...some special meaning of **...
- ...another special meaning of **...
- Other consecutive asterisks are considered invalid.
Glob magic is incompatible with literal magic.
That final "Glob magic is incompatible" paragraph is in the wrong spot.
It should be at the same level as "Two consecutive asterisks", as it is
not part of the final "Other consecutive asterisks" bullet point.
The same problem appears in several other spots in the glossary.
We can fix this by using "--" markers, which put the sub-list into its
own block. This should catch all of the unordered lists in the glossary,
which I found by grepping for " -" list markers.
Signed-off-by: Jeff King <peff@peff.net>
---
Just happened to notice this while looking at the "ref" entry.
Documentation/glossary-content.adoc | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/Documentation/glossary-content.adoc b/Documentation/glossary-content.adoc
index 20ba121314..8967e89ece 100644
--- a/Documentation/glossary-content.adoc
+++ b/Documentation/glossary-content.adoc
@@ -415,7 +415,8 @@ glob;;
+
Two consecutive asterisks ("`**`") in patterns matched against
full pathname may have special meaning:
-
++
+--
- A leading "`**`" followed by a slash means match in all
directories. For example, "`**/foo`" matches file or directory
"`foo`" anywhere. "`**/foo/bar`" matches file or directory "`bar`"
@@ -430,6 +431,7 @@ full pathname may have special meaning:
matches "`a/b`", "`a/x/b`", "`a/x/y/b`" and so on.
- Other consecutive asterisks are considered invalid.
+--
+
Glob magic is incompatible with literal magic.
@@ -442,7 +444,8 @@ See linkgit:gitattributes[5].
+
Each of the attribute requirements for the path takes one of
these forms:
-
++
+--
- "`ATTR`" requires that the attribute `ATTR` be set.
- "`-ATTR`" requires that the attribute `ATTR` be unset.
@@ -452,6 +455,7 @@ these forms:
- "`!ATTR`" requires that the attribute `ATTR` be
unspecified.
+--
+
Note that when matching against a tree object, attributes are still
obtained from working tree, not from the given tree object.
@@ -560,14 +564,17 @@ The ref namespace is hierarchical.
Ref names must either start with `refs/` or be located in the root of
the hierarchy. For the latter, their name must follow these rules:
+
+--
- The name consists of only upper-case characters or underscores.
- The name ends with "`_HEAD`" or is equal to "`HEAD`".
+--
+
There are some irregular refs in the root of the hierarchy that do not
match these rules. The following list is exhaustive and shall not be
extended in the future:
+
+--
- `AUTO_MERGE`
- `BISECT_EXPECTED_REV`
@@ -577,6 +584,7 @@ extended in the future:
- `NOTES_MERGE_REF`
- `MERGE_AUTOSTASH`
+--
+
Different subhierarchies are used for different purposes. For example,
the `refs/heads/` hierarchy is used to represent local branches whereas
--
2.54.0.rc1.279.g55df28c202
^ permalink raw reply related [flat|nested] 7+ messages in thread* Re: [PATCH] gitglossary: fix indentation of sub-lists
2026-04-11 19:06 [PATCH] gitglossary: fix indentation of sub-lists Jeff King
@ 2026-04-11 20:34 ` Kristoffer Haugsbakk
2026-04-11 20:47 ` Kristoffer Haugsbakk
0 siblings, 1 reply; 7+ messages in thread
From: Kristoffer Haugsbakk @ 2026-04-11 20:34 UTC (permalink / raw)
To: Jeff King, git
On Sat, Apr 11, 2026, at 21:06, Jeff King wrote:
> The glossary entry is a list of terms and their definitions, so
> multi-paragraph definitions need "+" continuation lines to indicate
> that they are part of a single entry.
>
> When an entry contains a sub-list (say, a bulleted list), the final "+"
> may become ambiguous: is it connecting the next paragraph to the final
> entry of the sub-list, or to the original list of definition paragraphs?
>
> Asciidoc generally connects it to the former, even when we mean the
> latter, and you end up with the next paragraph indented incorrectly,
> like this:
>
> glob
> ...defines glob...
>
> Two consecutive asterisks ("**") in patterns matched
> against full pathname may have special meaning:
>
> - ...some special meaning of **...
>
> - ...another special meaning of **...
>
> - Other consecutive asterisks are considered invalid.
>
> Glob magic is incompatible with literal magic.
>
> That final "Glob magic is incompatible" paragraph is in the wrong spot.
> It should be at the same level as "Two consecutive asterisks", as it is
> not part of the final "Other consecutive asterisks" bullet point.
`Documentation/doc-diff` confirms that this is the effect of this change.
>
> The same problem appears in several other spots in the glossary.
And that it is the effect for all the other spots at as well: pull a
paragraph out of a bullet list back to the previous block (or level).
> We can fix this by using "--" markers, which put the sub-list into its
> own block. This should catch all of the unordered lists in the glossary,
> which I found by grepping for " -" list markers.
Yes, for what it’s worth I think open blocks (`--`) are a great cure for
this when you are lucky enough to not already be in an open block.
AsciiDoc is certainly a format.
>
> Signed-off-by: Jeff King <peff@peff.net>
> ---
> Just happened to notice this while looking at the "ref" entry.
>
> Documentation/glossary-content.adoc | 12 ++++++++++--
> 1 file changed, 10 insertions(+), 2 deletions(-)
>[snip]
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [PATCH] gitglossary: fix indentation of sub-lists
2026-04-11 20:34 ` Kristoffer Haugsbakk
@ 2026-04-11 20:47 ` Kristoffer Haugsbakk
2026-04-11 21:42 ` Jeff King
0 siblings, 1 reply; 7+ messages in thread
From: Kristoffer Haugsbakk @ 2026-04-11 20:47 UTC (permalink / raw)
To: Jeff King, git
On Sat, Apr 11, 2026, at 22:34, Kristoffer Haugsbakk wrote:
> On Sat, Apr 11, 2026, at 21:06, Jeff King wrote:
>>[snip]
>
> `Documentation/doc-diff` confirms that this is the effect of this change.
>
>>
>> The same problem appears in several other spots in the glossary.
>
> And that it is the effect for all the other spots at as well: pull a
> paragraph out of a bullet list back to the previous block (or level).
>
But with `make html` there are some `+` artifacts:
+ Glob magic is incompatible with literal magic.
[...]
+ Note that when matching against a tree object, attributes are [...]
This is very off the cuff since I have to go now. So I might be missing
something/made a mistake.
I think the first thing is caused by the context already being in an
open block?
>[snip]
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [PATCH] gitglossary: fix indentation of sub-lists
2026-04-11 20:47 ` Kristoffer Haugsbakk
@ 2026-04-11 21:42 ` Jeff King
2026-04-11 21:55 ` [PATCH v2] " Jeff King
0 siblings, 1 reply; 7+ messages in thread
From: Jeff King @ 2026-04-11 21:42 UTC (permalink / raw)
To: Kristoffer Haugsbakk; +Cc: git
On Sat, Apr 11, 2026 at 10:47:34PM +0200, Kristoffer Haugsbakk wrote:
> But with `make html` there are some `+` artifacts:
>
> + Glob magic is incompatible with literal magic.
> [...]
> + Note that when matching against a tree object, attributes are [...]
>
> This is very off the cuff since I have to go now. So I might be missing
> something/made a mistake.
Hmm, I don't see that in the HTML when I build with asciidoc. But if I
build with asciidoctor, I see it both in the HTML and in the doc-diff
output. Yuck.
> I think the first thing is caused by the context already being in an
> open block?
Yes. Looks like asciidoc learned to handle nested entries better, but
perhaps asciidoctor didn't.
I think I've found a workaround, which I'll post in a moment. Thanks for
reporting.
-Peff
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v2] gitglossary: fix indentation of sub-lists
2026-04-11 21:42 ` Jeff King
@ 2026-04-11 21:55 ` Jeff King
2026-04-12 9:10 ` Kristoffer Haugsbakk
0 siblings, 1 reply; 7+ messages in thread
From: Jeff King @ 2026-04-11 21:55 UTC (permalink / raw)
To: Kristoffer Haugsbakk; +Cc: git
On Sat, Apr 11, 2026 at 05:42:13PM -0400, Jeff King wrote:
> > I think the first thing is caused by the context already being in an
> > open block?
>
> Yes. Looks like asciidoc learned to handle nested entries better, but
> perhaps asciidoctor didn't.
>
> I think I've found a workaround, which I'll post in a moment. Thanks for
> reporting.
Here it is.
-- >8 --
Subject: [PATCH] gitglossary: fix indentation of sub-lists
The glossary entry is a list of terms and their definitions, so
multi-paragraph definitions need "+" continuation lines to indicate
that they are part of a single entry.
When an entry contains a sub-list (say, a bulleted list), the final "+"
may become ambiguous: is it connecting the next paragraph to the final
entry of the sub-list, or to the original list of definition paragraphs?
Asciidoc generally connects it to the former, even when we mean the
latter, and you end up with the next paragraph indented incorrectly,
like this:
glob
...defines glob...
Two consecutive asterisks ("**") in patterns matched
against full pathname may have special meaning:
- ...some special meaning of **...
- ...another special meaning of **...
- Other consecutive asterisks are considered invalid.
Glob magic is incompatible with literal magic.
That final "Glob magic is incompatible" paragraph is in the wrong spot.
It should be at the same level as "Two consecutive asterisks", as it is
not part of the final "Other consecutive asterisks" bullet point.
The same problem appears in several other spots in the glossary.
Usually we'd fix this by using "--" markers, which put the sub-list into
its own block. But there's a catch: in some of these spots we are
already in an open block, and nesting open blocks is a problem. It seems
to work for me using Asciidoc 10.2.1, but Asciidoctor 2.0.26 makes a
mess of it (our intent to open a new block seems to close the old one).
Fortunately there's a work-around: when using a "+" list-continuation,
the number of empty lines above the continuation indicates which level
of parent list to continue. So by adding an empty line after our
unordered list (before the "+"), we should be able to continue the
definition list item.
But asciidoc being asciidoc, of course that is not the end of the story.
That technique works fine for the "glob" and "attr" lists in this patch,
but under the "refs" item it works for only 1 of the 2 lists! I can't
figure out why, and this may be an asciidoctor bug. But we can work
around it by using "--" open-block markers here, since we're not
already in an open block.
So using the extra blank line for the first two instances, and "--"
markers for the second two, this patch produces identical output from
"doc-diff HEAD^ HEAD" for both --asciidoctor and --ascii modes.
Signed-off-by: Jeff King <peff@peff.net>
---
Documentation/glossary-content.adoc | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/Documentation/glossary-content.adoc b/Documentation/glossary-content.adoc
index 20ba121314..8c4e9dd3be 100644
--- a/Documentation/glossary-content.adoc
+++ b/Documentation/glossary-content.adoc
@@ -430,6 +430,7 @@ full pathname may have special meaning:
matches "`a/b`", "`a/x/b`", "`a/x/y/b`" and so on.
- Other consecutive asterisks are considered invalid.
+
+
Glob magic is incompatible with literal magic.
@@ -452,6 +453,7 @@ these forms:
- "`!ATTR`" requires that the attribute `ATTR` be
unspecified.
+
+
Note that when matching against a tree object, attributes are still
obtained from working tree, not from the given tree object.
@@ -560,14 +562,17 @@ The ref namespace is hierarchical.
Ref names must either start with `refs/` or be located in the root of
the hierarchy. For the latter, their name must follow these rules:
+
+--
- The name consists of only upper-case characters or underscores.
- The name ends with "`_HEAD`" or is equal to "`HEAD`".
+--
+
There are some irregular refs in the root of the hierarchy that do not
match these rules. The following list is exhaustive and shall not be
extended in the future:
+
+--
- `AUTO_MERGE`
- `BISECT_EXPECTED_REV`
@@ -577,6 +582,7 @@ extended in the future:
- `NOTES_MERGE_REF`
- `MERGE_AUTOSTASH`
+--
+
Different subhierarchies are used for different purposes. For example,
the `refs/heads/` hierarchy is used to represent local branches whereas
--
2.54.0.rc1.336.g4588871dc4
^ permalink raw reply related [flat|nested] 7+ messages in thread* Re: [PATCH v2] gitglossary: fix indentation of sub-lists
2026-04-11 21:55 ` [PATCH v2] " Jeff King
@ 2026-04-12 9:10 ` Kristoffer Haugsbakk
2026-04-12 19:56 ` Jeff King
0 siblings, 1 reply; 7+ messages in thread
From: Kristoffer Haugsbakk @ 2026-04-12 9:10 UTC (permalink / raw)
To: Jeff King; +Cc: git
On Sat, Apr 11, 2026, at 23:55, Jeff King wrote:
> On Sat, Apr 11, 2026 at 05:42:13PM -0400, Jeff King wrote:
>
>> > I think the first thing is caused by the context already being in an
>> > open block?
>>
>> Yes. Looks like asciidoc learned to handle nested entries better, but
>> perhaps asciidoctor didn't.
>>
>> I think I've found a workaround, which I'll post in a moment. Thanks for
>> reporting.
>
> Here it is.
>
> -- >8 --
> Subject: [PATCH] gitglossary: fix indentation of sub-lists
>
>[snip]
>
> Usually we'd fix this by using "--" markers, which put the sub-list into
> its own block. But there's a catch: in some of these spots we are
> already in an open block, and nesting open blocks is a problem. It seems
> to work for me using Asciidoc 10.2.1, but Asciidoctor 2.0.26 makes a
> mess of it (our intent to open a new block seems to close the old one).
>
> Fortunately there's a work-around: when using a "+" list-continuation,
> the number of empty lines above the continuation indicates which level
> of parent list to continue. So by adding an empty line after our
> unordered list (before the "+"), we should be able to continue the
> definition list item.
Nice.
>
> But asciidoc being asciidoc, of course that is not the end of the story.
Ouch.
> That technique works fine for the "glob" and "attr" lists in this patch,
> but under the "refs" item it works for only 1 of the 2 lists! I can't
> figure out why, and this may be an asciidoctor bug. But we can work
You mention “asciidoc being asciidoc” but here it seems to be
about Asciidoctor?
> around it by using "--" open-block markers here, since we're not
> already in an open block.
>
> So using the extra blank line for the first two instances, and "--"
> markers for the second two, this patch produces identical output from
> "doc-diff HEAD^ HEAD" for both --asciidoctor and --ascii modes.
Nit: s/--ascii/--asciidoc/
>
> Signed-off-by: Jeff King <peff@peff.net>
> ---
>[snip]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2] gitglossary: fix indentation of sub-lists
2026-04-12 9:10 ` Kristoffer Haugsbakk
@ 2026-04-12 19:56 ` Jeff King
0 siblings, 0 replies; 7+ messages in thread
From: Jeff King @ 2026-04-12 19:56 UTC (permalink / raw)
To: Kristoffer Haugsbakk; +Cc: git
On Sun, Apr 12, 2026 at 11:10:34AM +0200, Kristoffer Haugsbakk wrote:
> > But asciidoc being asciidoc, of course that is not the end of the story.
>
> Ouch.
>
> > That technique works fine for the "glob" and "attr" lists in this patch,
> > but under the "refs" item it works for only 1 of the 2 lists! I can't
> > figure out why, and this may be an asciidoctor bug. But we can work
>
> You mention “asciidoc being asciidoc” but here it seems to be
> about Asciidoctor?
It is. I meant "asciidoc the language", not "asciidoc the tool". I
didn't want to be too harsh on asciidoctor specifically. I think in
aggregate the pain comes equally from both tools. ;)
> > So using the extra blank line for the first two instances, and "--"
> > markers for the second two, this patch produces identical output from
> > "doc-diff HEAD^ HEAD" for both --asciidoctor and --ascii modes.
>
> Nit: s/--ascii/--asciidoc/
Oops, yes.
-Peff
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-04-12 19:57 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-11 19:06 [PATCH] gitglossary: fix indentation of sub-lists Jeff King
2026-04-11 20:34 ` Kristoffer Haugsbakk
2026-04-11 20:47 ` Kristoffer Haugsbakk
2026-04-11 21:42 ` Jeff King
2026-04-11 21:55 ` [PATCH v2] " Jeff King
2026-04-12 9:10 ` Kristoffer Haugsbakk
2026-04-12 19:56 ` Jeff King
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox