Subject: bug#36644: Git log search

From: Robert Pluim <[email-masked]>
Date: Wed, 24 Jul 2019 17:46:46 +0200

>>>>> On Wed, 24 Jul 2019 18:10:35 +0300, Dmitry Gutov <[email-masked]> said:

    Dmitry> On 19.07.2019 1:32, Juri Linkov wrote:
    >>> We can't really use this approach. VC is a high level abstraction,
    >>> so we try to define the semantics well.
    >> 
    >> I tend to agree with Robert.  A string have to be passed to the backend as is.
    >> It seems such situations when these strings should be compatible between
    >> different backends (such as running the same command on one backend,
    >> and then repeating the same search on another backend by retrieving
    >> a previous argument from the history via M-p) are very rare.

    Dmitry> I might agree with you from the practical standpoint, but
    Dmitry> vc-log-search needs a docstring that actually describes what the
    Dmitry> function is going to do. Including info on how PATTERN is going to be
    Dmitry> interpreted.

If it were implemented as 'backend show me all the logs and then emacs
will search through them' then that would be required, but itʼs not,
itʼs implemented as 'backend show me the logs which match STRING'

    Dmitry> E.g. whether "foo.txt" will only match literally, or whether "." can
    Dmitry> be substituted by any character.

That will depend on the backend

    Dmitry> And if PATTERN is a regexp, what kind of regexp it's going to be
    Dmitry> interepreted as: basic RE, extended RE, Emacs RE, or Perl RE (probably
    Dmitry> not the last one anyway).

As will this

    Dmitry> I suppose we can choose one of these and say e.g. that pattern is
    Dmitry> interpreted as an extended regular expression, except for some
    Dmitry> backends that don't support that. I wonder how we're going to convey
    Dmitry> the latter to the user.

Itʼs not a pattern. Itʼs a string that is passed as-is to the backend,
which is free to interpret it as it wishes. From my viewpoint, we can
just say

"Search for STRING, which is passed unsullied to the backend's log
search command.  Consult the documentation for your backend to
understand the matching method it uses to search for STRING."

or similar.

Robert