diff mbox series

Documentation/git-reflog: remove unneeded \ from \{

Message ID pull.1304.git.git.1659387885711.gitgitgadget@gmail.com (mailing list archive)
State Accepted
Commit 94955d576b871f33c8f6863f3980c6107d348e47
Headers show
Series Documentation/git-reflog: remove unneeded \ from \{ | expand

Commit Message

Glen Choo Aug. 1, 2022, 9:04 p.m. UTC
From: Glen Choo <chooglen@google.com>

There are some inconsistencies with how different asciidoc environments
handle different combinations of "\{<>}", e.g. these results were
observed with asciidoc on two different environments:

  | Input     | Output (env A) | Output (env B)   | same/different |
  |-----------+----------------+------------------+----------------|
  | \{<foo>\} | {&lt;foo&gt;}  | \{&lt;foo&gt;}^M | different      |
  | {<foo>}   | {&lt;foo&gt;}  | {&lt;foo&gt;}    | same           |
  | \{<foo>}  | {&lt;foo&gt;}  | \{&lt;foo&gt;}^M | different      |
  | \{foo\}   | {foo}          | {foo}            | same           |
  | \{\}      | {}             | \{}^M            | different      |
  | \{}       | {}             | {}               | same           |
  | {\}       | {}             | {}               | same           |

The only instance of this biting us is "@\{<specifier>\}" in
Documentation/git-reflog.txt; all other combinations of "\{<>}" (e.g. in
Documentation/revisions.txt) seem to render consistently.

Fix this inconsistent rendering by removing the unnecessary "\" in
Documentation/git-reflog.txt.

Signed-off-by: Glen Choo <chooglen@google.com>
---
    Documentation/git-reflog: remove unneeded \ from {
    
    I noticed this inconsistency as I was trying to build Git docs with
    Google's internal build system. This string seems particularly
    problematic e.g. you can see unnecessary "\" on
    https://git-scm.com/docs/git-reflog#_description.
    
    I'm not proficient in asciidoc at all, but I suspect that this isn't
    tied to the asciidoc version; I initially observed these differences in
    environments with different versions of asciidoc (9.0.0 and 10.2.0) but
    I can't reproduce this at all on my Mac using different versions of
    asciidoc and asciidoctor from Homebrew. Perhaps the issue is in some
    underlying library?

Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1304%2Fchooglen%2Fdocumentation%2Fbackslash-brace-asciidoc-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1304/chooglen/documentation/backslash-brace-asciidoc-v1
Pull-Request: https://github.com/git/git/pull/1304

 Documentation/git-reflog.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


base-commit: 23b219f8e3f2adfb0441e135f0a880e6124f766c

Comments

Junio C Hamano Aug. 1, 2022, 9:33 p.m. UTC | #1
"Glen Choo via GitGitGadget" <gitgitgadget@gmail.com> writes:

> Fix this inconsistent rendering by removing the unnecessary "\" in
> Documentation/git-reflog.txt.
>
> Signed-off-by: Glen Choo <chooglen@google.com>
> ---
>     Documentation/git-reflog: remove unneeded \ from {
>     
>     I noticed this inconsistency as I was trying to build Git docs with
>     Google's internal build system. This string seems particularly
>     problematic e.g. you can see unnecessary "\" on
>     https://git-scm.com/docs/git-reflog#_description.
>     
>     I'm not proficient in asciidoc at all, but I suspect that this isn't
>     tied to the asciidoc version; I initially observed these differences in
>     environments with different versions of asciidoc (9.0.0 and 10.2.0) but
>     I can't reproduce this at all on my Mac using different versions of
>     asciidoc and asciidoctor from Homebrew. Perhaps the issue is in some
>     underlying library?

Thanks.  ref@\{specifier\} came from 552cecc2 (Teach "git reflog" a
subcommand to delete single entries, 2007-10-17) but that is so
distant past that the world must have changed too much that past
experiences would not help all that much X-<.  There are too many
moving parts, older and more recent asciidoc, plus asciidoctor.

Those who care about gitman.texi may also want to check the end
result, as the toolchain there involves docbook, yet another moving
part.

Will queue.  Thanks.

> Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1304%2Fchooglen%2Fdocumentation%2Fbackslash-brace-asciidoc-v1
> Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1304/chooglen/documentation/backslash-brace-asciidoc-v1
> Pull-Request: https://github.com/git/git/pull/1304
>
>  Documentation/git-reflog.txt | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/Documentation/git-reflog.txt b/Documentation/git-reflog.txt
> index 5ced7ad4f8b..db9d46edfa9 100644
> --- a/Documentation/git-reflog.txt
> +++ b/Documentation/git-reflog.txt
> @@ -22,7 +22,7 @@ depending on the subcommand:
>  	[--rewrite] [--updateref] [--stale-fix]
>  	[--dry-run | -n] [--verbose] [--all [--single-worktree] | <refs>...]
>  'git reflog delete' [--rewrite] [--updateref]
> -	[--dry-run | -n] [--verbose] <ref>@\{<specifier>\}...
> +	[--dry-run | -n] [--verbose] <ref>@{<specifier>}...
>  'git reflog exists' <ref>
>  
>  Reference logs, or "reflogs", record when the tips of branches and
>
> base-commit: 23b219f8e3f2adfb0441e135f0a880e6124f766c
Johannes Schindelin Aug. 10, 2022, 9:23 a.m. UTC | #2
Hi Junio & Glen,

On Mon, 1 Aug 2022, Junio C Hamano wrote:

> "Glen Choo via GitGitGadget" <gitgitgadget@gmail.com> writes:
>
> > Fix this inconsistent rendering by removing the unnecessary "\" in
> > Documentation/git-reflog.txt.
> >
> > Signed-off-by: Glen Choo <chooglen@google.com>
> > ---
> >     Documentation/git-reflog: remove unneeded \ from {
> >
> >     I noticed this inconsistency as I was trying to build Git docs with
> >     Google's internal build system. This string seems particularly
> >     problematic e.g. you can see unnecessary "\" on
> >     https://git-scm.com/docs/git-reflog#_description.
> >
> >     I'm not proficient in asciidoc at all, but I suspect that this isn't
> >     tied to the asciidoc version; I initially observed these differences in
> >     environments with different versions of asciidoc (9.0.0 and 10.2.0) but
> >     I can't reproduce this at all on my Mac using different versions of
> >     asciidoc and asciidoctor from Homebrew. Perhaps the issue is in some
> >     underlying library?
>
> Thanks.  ref@\{specifier\} came from 552cecc2 (Teach "git reflog" a
> subcommand to delete single entries, 2007-10-17) but that is so
> distant past that the world must have changed too much that past
> experiences would not help all that much X-<.

Oh wow, what a blast from the past. I indeed do not recall the specifics
why I used that backslash, maybe it was needed back then. Or at least it
did not hurt back then.

Here's my ACK in any case,
Dscho

> There are too many moving parts, older and more recent asciidoc, plus
> asciidoctor.
>
> Those who care about gitman.texi may also want to check the end
> result, as the toolchain there involves docbook, yet another moving
> part.
>
> Will queue.  Thanks.
>
> > Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1304%2Fchooglen%2Fdocumentation%2Fbackslash-brace-asciidoc-v1
> > Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1304/chooglen/documentation/backslash-brace-asciidoc-v1
> > Pull-Request: https://github.com/git/git/pull/1304
> >
> >  Documentation/git-reflog.txt | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/Documentation/git-reflog.txt b/Documentation/git-reflog.txt
> > index 5ced7ad4f8b..db9d46edfa9 100644
> > --- a/Documentation/git-reflog.txt
> > +++ b/Documentation/git-reflog.txt
> > @@ -22,7 +22,7 @@ depending on the subcommand:
> >  	[--rewrite] [--updateref] [--stale-fix]
> >  	[--dry-run | -n] [--verbose] [--all [--single-worktree] | <refs>...]
> >  'git reflog delete' [--rewrite] [--updateref]
> > -	[--dry-run | -n] [--verbose] <ref>@\{<specifier>\}...
> > +	[--dry-run | -n] [--verbose] <ref>@{<specifier>}...
> >  'git reflog exists' <ref>
> >
> >  Reference logs, or "reflogs", record when the tips of branches and
> >
> > base-commit: 23b219f8e3f2adfb0441e135f0a880e6124f766c
>
Felipe Contreras Aug. 10, 2022, 1:06 p.m. UTC | #3
On Mon, Aug 1, 2022 at 4:04 PM Glen Choo via GitGitGadget
<gitgitgadget@gmail.com> wrote:
>
> From: Glen Choo <chooglen@google.com>
>
> There are some inconsistencies with how different asciidoc environments
> handle different combinations of "\{<>}", e.g. these results were
> observed with asciidoc on two different environments:
>
>   | Input     | Output (env A) | Output (env B)   | same/different |
>   |-----------+----------------+------------------+----------------|
>   | \{<foo>\} | {&lt;foo&gt;}  | \{&lt;foo&gt;}^M | different      |
>   | {<foo>}   | {&lt;foo&gt;}  | {&lt;foo&gt;}    | same           |
>   | \{<foo>}  | {&lt;foo&gt;}  | \{&lt;foo&gt;}^M | different      |
>   | \{foo\}   | {foo}          | {foo}            | same           |
>   | \{\}      | {}             | \{}^M            | different      |
>   | \{}       | {}             | {}               | same           |
>   | {\}       | {}             | {}               | same           |
>
> The only instance of this biting us is "@\{<specifier>\}" in
> Documentation/git-reflog.txt; all other combinations of "\{<>}" (e.g. in
> Documentation/revisions.txt) seem to render consistently.

So, I did some investigation. {} are used for attributes, if you do
{manversion} that will be replaced by the manversion attribute (which
we are setting), but if you do {foobar} (an attribute that doesn't
exist) different implementations will do different things, what you
should do is \{foobar} as that's how the documentation says you should
escape attributes [1].

In 552cecc214 (Teach "git reflog" a subcommand to delete single
entries, 2007-10-17) it was {specifier} which could have been an
attribute and thus should be quoted, but in 49cbad0edd (doc: express
grammar placeholders between angle brackets, 2021-11-06) it was
changed to {<specifier>} and that apparently cannot be an attribute,
so it should not be quoted.

We shouldn't be using verses for this kind of stuff though, since we
want the whole thing displayed as-is, it's better to use literal
blocks [2], but that's a bigger change.

For now it should be:

  @{<specifier>}

So the patch is correct. ACK.

Cheers.

[1] https://docs.asciidoctor.org/asciidoc/latest/attributes/reference-attributes/
[2] https://docs.asciidoctor.org/asciidoc/latest/verbatim/literal-blocks/
Glen Choo Aug. 10, 2022, 4:55 p.m. UTC | #4
Felipe Contreras <felipe.contreras@gmail.com> writes:

> On Mon, Aug 1, 2022 at 4:04 PM Glen Choo via GitGitGadget
> <gitgitgadget@gmail.com> wrote:
>>
>> From: Glen Choo <chooglen@google.com>
>>
>> There are some inconsistencies with how different asciidoc environments
>> handle different combinations of "\{<>}", e.g. these results were
>> observed with asciidoc on two different environments:
>>
>>   | Input     | Output (env A) | Output (env B)   | same/different |
>>   |-----------+----------------+------------------+----------------|
>>   | \{<foo>\} | {&lt;foo&gt;}  | \{&lt;foo&gt;}^M | different      |
>>   | {<foo>}   | {&lt;foo&gt;}  | {&lt;foo&gt;}    | same           |
>>   | \{<foo>}  | {&lt;foo&gt;}  | \{&lt;foo&gt;}^M | different      |
>>   | \{foo\}   | {foo}          | {foo}            | same           |
>>   | \{\}      | {}             | \{}^M            | different      |
>>   | \{}       | {}             | {}               | same           |
>>   | {\}       | {}             | {}               | same           |
>>
>> The only instance of this biting us is "@\{<specifier>\}" in
>> Documentation/git-reflog.txt; all other combinations of "\{<>}" (e.g. in
>> Documentation/revisions.txt) seem to render consistently.
>
> So, I did some investigation. {} are used for attributes, if you do
> {manversion} that will be replaced by the manversion attribute (which
> we are setting), but if you do {foobar} (an attribute that doesn't
> exist) different implementations will do different things, what you
> should do is \{foobar} as that's how the documentation says you should
> escape attributes [1].
>
> In 552cecc214 (Teach "git reflog" a subcommand to delete single
> entries, 2007-10-17) it was {specifier} which could have been an
> attribute and thus should be quoted, but in 49cbad0edd (doc: express
> grammar placeholders between angle brackets, 2021-11-06) it was
> changed to {<specifier>} and that apparently cannot be an attribute,
> so it should not be quoted.

Aha! Thanks! I'm glad that there's a satisfying explanation for all of
this :)

>
> We shouldn't be using verses for this kind of stuff though, since we
> want the whole thing displayed as-is, it's better to use literal
> blocks [2], but that's a bigger change.
>
> For now it should be:
>
>   @{<specifier>}
>
> So the patch is correct. ACK.
>
> Cheers.
>
> [1] https://docs.asciidoctor.org/asciidoc/latest/attributes/reference-attributes/
> [2] https://docs.asciidoctor.org/asciidoc/latest/verbatim/literal-blocks/
>
> -- 
> Felipe Contreras
diff mbox series

Patch

diff --git a/Documentation/git-reflog.txt b/Documentation/git-reflog.txt
index 5ced7ad4f8b..db9d46edfa9 100644
--- a/Documentation/git-reflog.txt
+++ b/Documentation/git-reflog.txt
@@ -22,7 +22,7 @@  depending on the subcommand:
 	[--rewrite] [--updateref] [--stale-fix]
 	[--dry-run | -n] [--verbose] [--all [--single-worktree] | <refs>...]
 'git reflog delete' [--rewrite] [--updateref]
-	[--dry-run | -n] [--verbose] <ref>@\{<specifier>\}...
+	[--dry-run | -n] [--verbose] <ref>@{<specifier>}...
 'git reflog exists' <ref>
 
 Reference logs, or "reflogs", record when the tips of branches and