Add -F to commit search to treat keywords as strings (#28744) (#28748)

Backport #28744 by @me-heer

Fixes #28269

The [default
behavior](https://git-scm.com/docs/git-log#Documentation/git-log.txt---basic-regexp)
of --grep in git log is to interpret the keyword as a regular
expression. This causes the search to fail in the cases where the search
keyword contains a `[`, since `[` is a special character used in grep.

If we want our keywords to be interpreted as 'strings', we should use
[-F
flag](https://git-scm.com/docs/git-log#Documentation/git-log.txt---basic-regexp).

Co-authored-by: Mihir Joshi <mihir67mj@gmail.com>
(cherry picked from commit f220f4231a)
This commit is contained in:
Giteabot 2024-01-11 04:29:01 +08:00 committed by Earl Warren
parent efa0feb734
commit 464c6e8d73
No known key found for this signature in database
GPG key ID: 0579CB2928A78A00

View file

@ -148,6 +148,9 @@ func (repo *Repository) searchCommits(id SHA1, opts SearchCommitsOptions) ([]*Co
cmd.AddArguments("--all") cmd.AddArguments("--all")
} }
// interpret search string keywords as string instead of regex
cmd.AddArguments("-F")
// add remaining keywords from search string // add remaining keywords from search string
// note this is done only for command created above // note this is done only for command created above
if len(opts.Keywords) > 0 { if len(opts.Keywords) > 0 {