* [PATCH] fix revisions doc about quoting for ':/' notation
@ 2017-08-16 3:21 ryenus
2017-08-16 18:49 ` Junio C Hamano
2017-08-16 21:15 ` Andreas Heiduk
0 siblings, 2 replies; 5+ messages in thread
From: ryenus @ 2017-08-16 3:21 UTC (permalink / raw)
To: Git mailing list
To make sure the `<text>` in `:/<text>` is seen as one search string,
one should quote/escape `<text>` properly.
Especially, the example given in the manual `:/fix nasty bug` does not
work because of missing quotes. The examples are now corrected, and a
note about quoting/escaping is added as well.
---
Documentation/revisions.txt | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/Documentation/revisions.txt b/Documentation/revisions.txt
index 61277469c..fdfdde0ad 100644
--- a/Documentation/revisions.txt
+++ b/Documentation/revisions.txt
@@ -169,14 +169,14 @@ existing tag object.
and dereference the tag recursively until a non-tag object is
found.
-'<rev>{caret}{/<text>}', e.g. 'HEAD^{/fix nasty bug}'::
+'<rev>{caret}{/<text>}', e.g. 'HEAD^{/"fix nasty bug"}'::
A suffix '{caret}' to a revision parameter, followed by a brace
pair that contains a text led by a slash,
is the same as the ':/fix nasty bug' syntax below except that
it returns the youngest matching commit which is reachable from
the '<rev>' before '{caret}'.
-':/<text>', e.g. ':/fix nasty bug'::
+':/<text>', e.g. ':/"fix nasty bug"'::
A colon, followed by a slash, followed by a text, names
a commit whose commit message matches the specified regular expression.
This name returns the youngest matching commit which is
@@ -185,7 +185,8 @@ existing tag object.
e.g. ':/^foo'. The special sequence ':/!' is reserved for modifiers to what
is matched. ':/!-foo' performs a negative match, while ':/!!foo' matches a
literal '!' character, followed by 'foo'. Any other sequence beginning with
- ':/!' is reserved for now.
+ ':/!' is reserved for now. And make sure to quote/escape for the text to be
+ seen as one search string.
'<rev>:<path>', e.g. 'HEAD:README', ':README', 'master:./README'::
A suffix ':' followed by a path names the blob or tree
--
2.14.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] fix revisions doc about quoting for ':/' notation
2017-08-16 3:21 [PATCH] fix revisions doc about quoting for ':/' notation ryenus
@ 2017-08-16 18:49 ` Junio C Hamano
2017-08-16 21:15 ` Andreas Heiduk
1 sibling, 0 replies; 5+ messages in thread
From: Junio C Hamano @ 2017-08-16 18:49 UTC (permalink / raw)
To: ryenus; +Cc: Git mailing list
ryenus <ryenus@gmail.com> writes:
> To make sure the `<text>` in `:/<text>` is seen as one search string,
> one should quote/escape `<text>` properly.
>
> Especially, the example given in the manual `:/fix nasty bug` does not
> work because of missing quotes. The examples are now corrected, and a
> note about quoting/escaping is added as well.
> ---
> Documentation/revisions.txt | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/Documentation/revisions.txt b/Documentation/revisions.txt
> index 61277469c..fdfdde0ad 100644
> --- a/Documentation/revisions.txt
> +++ b/Documentation/revisions.txt
> @@ -169,14 +169,14 @@ existing tag object.
> and dereference the tag recursively until a non-tag object is
> found.
>
> -'<rev>{caret}{/<text>}', e.g. 'HEAD^{/fix nasty bug}'::
> +'<rev>{caret}{/<text>}', e.g. 'HEAD^{/"fix nasty bug"}'::
This made me scratch my head, as I rarely read the formatted result
but look at the documentation in the source form. The original
meant to quote the whole thing inside a single quote, but AsciiDoc
of course will strip that and instead makes the whole thing typeset
in monospace.
What you did is not wrong per-se, but I think quoting the whole
thing, instead of quoting just what is inside the braces, i.e.
'"HEAD^{/fix nasty bug}"' (or if you can manage it, using single
quote instead of double quote) would read better.
> A suffix '{caret}' to a revision parameter, followed by a brace
> pair that contains a text led by a slash,
> is the same as the ':/fix nasty bug' syntax below except that
> it returns the youngest matching commit which is reachable from
> the '<rev>' before '{caret}'.
>
> -':/<text>', e.g. ':/fix nasty bug'::
> +':/<text>', e.g. ':/"fix nasty bug"'::
Likewise.
> @@ -185,7 +185,8 @@ existing tag object.
> e.g. ':/^foo'. The special sequence ':/!' is reserved for modifiers to what
> is matched. ':/!-foo' performs a negative match, while ':/!!foo' matches a
> literal '!' character, followed by 'foo'. Any other sequence beginning with
> - ':/!' is reserved for now.
> + ':/!' is reserved for now. And make sure to quote/escape for the text to be
> + seen as one search string.
Good.
Please sign-off your work (cf. Documentation/SubmittingPatches).
Thanks.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] fix revisions doc about quoting for ':/' notation
2017-08-16 3:21 [PATCH] fix revisions doc about quoting for ':/' notation ryenus
2017-08-16 18:49 ` Junio C Hamano
@ 2017-08-16 21:15 ` Andreas Heiduk
2017-08-16 21:57 ` Junio C Hamano
1 sibling, 1 reply; 5+ messages in thread
From: Andreas Heiduk @ 2017-08-16 21:15 UTC (permalink / raw)
To: ryenus, Git mailing list
Am 16.08.2017 um 05:21 schrieb ryenus:
> To make sure the `<text>` in `:/<text>` is seen as one search string,
> one should quote/escape `<text>` properly.
>
> Especially, the example given in the manual `:/fix nasty bug` does not
> work because of missing quotes. The examples are now corrected, and a
> note about quoting/escaping is added as well.
Right now the documentation describes the syntax as git sees the
parameters. This is agnostic of the shell or other UI with their
different quoting rules. For example users of fish must quote
`rev@{2}`. A GUI might require no quoting at all. In that case `:/"fix
nasty bugs"` would be given to git verbatim and hence not find the revision.
Also: Other examples like `HEAD@{5 minutes ago}` need the same quoting.
So my suggestion is to not use quoting in the examples and provide only
a hint in the text. Example:
<rev>{caret}{/<text>}', e.g. 'HEAD^{/fix nasty bug}'::
A suffix '{caret}' to a revision parameter, followed by a brace
pair that contains a text led by a slash,
is the same as the ':/fix nasty bug' syntax below except that
it returns the youngest matching commit which is reachable from
the '<rev>' before '{caret}'.
+ Depending on the given text the shell's word splitting rules
+ might require additional quoting.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] fix revisions doc about quoting for ':/' notation
2017-08-16 21:15 ` Andreas Heiduk
@ 2017-08-16 21:57 ` Junio C Hamano
2017-08-17 7:01 ` ryenus
0 siblings, 1 reply; 5+ messages in thread
From: Junio C Hamano @ 2017-08-16 21:57 UTC (permalink / raw)
To: Andreas Heiduk; +Cc: ryenus, Git mailing list
Andreas Heiduk <asheiduk@gmail.com> writes:
> Am 16.08.2017 um 05:21 schrieb ryenus:
>> To make sure the `<text>` in `:/<text>` is seen as one search string,
>> one should quote/escape `<text>` properly.
>>
>> Especially, the example given in the manual `:/fix nasty bug` does not
>> work because of missing quotes. The examples are now corrected, and a
>> note about quoting/escaping is added as well.
>
> Right now the documentation describes the syntax as git sees the
> parameters. This is agnostic of the shell or other UI with their
> different quoting rules. For example users of fish must quote
> `rev@{2}`. A GUI might require no quoting at all. In that case `:/"fix
> nasty bugs"` would be given to git verbatim and hence not find the revision.
These are all good points that I didn't consider when responding.
> Also: Other examples like `HEAD@{5 minutes ago}` need the same quoting.
>
> So my suggestion is to not use quoting in the examples and provide only
> a hint in the text. Example:
>
> <rev>{caret}{/<text>}', e.g. 'HEAD^{/fix nasty bug}'::
> A suffix '{caret}' to a revision parameter, followed by a brace
> pair that contains a text led by a slash,
> is the same as the ':/fix nasty bug' syntax below except that
> it returns the youngest matching commit which is reachable from
> the '<rev>' before '{caret}'.
> + Depending on the given text the shell's word splitting rules
> + might require additional quoting.
That sounds like a very safe change to adopt, regardless of what we
decide to do to the other part of the proposed change.
Thanks.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] fix revisions doc about quoting for ':/' notation
2017-08-16 21:57 ` Junio C Hamano
@ 2017-08-17 7:01 ` ryenus
0 siblings, 0 replies; 5+ messages in thread
From: ryenus @ 2017-08-17 7:01 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Andreas Heiduk, Git mailing list
On 17 August 2017 at 05:57, Junio C Hamano <gitster@pobox.com> wrote:
> Andreas Heiduk <asheiduk@gmail.com> writes:
>
>> Am 16.08.2017 um 05:21 schrieb ryenus:
>>> To make sure the `<text>` in `:/<text>` is seen as one search string,
>>> one should quote/escape `<text>` properly.
>>>
>>> Especially, the example given in the manual `:/fix nasty bug` does not
>>> work because of missing quotes. The examples are now corrected, and a
>>> note about quoting/escaping is added as well.
>>
>> Right now the documentation describes the syntax as git sees the
>> parameters. This is agnostic of the shell or other UI with their
>> different quoting rules. For example users of fish must quote
>> `rev@{2}`. A GUI might require no quoting at all. In that case `:/"fix
>> nasty bugs"` would be given to git verbatim and hence not find the revision.
>
> These are all good points that I didn't consider when responding.
>
Makes sense for me, too. I've just sent a v2 patch, which leaves the original
example as-is, meanwhile added a example inside the explanation.
Thanks!
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2017-08-17 7:01 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-08-16 3:21 [PATCH] fix revisions doc about quoting for ':/' notation ryenus
2017-08-16 18:49 ` Junio C Hamano
2017-08-16 21:15 ` Andreas Heiduk
2017-08-16 21:57 ` Junio C Hamano
2017-08-17 7:01 ` ryenus
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).