[PATCH] fix revisions doc about quoting for ':/' notation

Subsystems: documentation, the rest

STALE3271d

2 messages, 2 authors, 2017-08-16 · open the first message on its own page

[PATCH] fix revisions doc about quoting for ':/' notation

From: ryenus <hidden>
Date: 2017-08-16 03:21:38

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

Re: [PATCH] fix revisions doc about quoting for ':/' notation

From: Andreas Heiduk <hidden>
Date: 2017-08-16 21:15:56

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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help