Subject: Why does "git log --author=<pattern>" not work with "regexp-ignore-case" and other regexp-related options?

From: Tim Friske <[email-masked]>
Date: Sun, 19 Apr 2015 10:29:41 +0200

Hi,

I wonder why "git log --author=<pattern>" does not work with the
"regexp-ignore-case" option and the other regexp-related options?
Wouldn't it be useful to make the "author=<pattern>" option support the
following options?

  * basic-regexp
  * extended-regexp
  * fixed-strings
  * perl-regexp

In the same way "git log --committer=<pattern>" cannot be combined with
any of the above options.

I tried to find out which regexp dialect to use for the "<pattern>"
argument that must be passed to the "author" and "committer" options but
without luck. The git-log(1) manual page just states for these options
"... that match the specified pattern (regular expression)".

Given a commit with the following headers:

Author: Tim Friske <[email-masked]>
Commit: Tim Friske <[email-masked]>

When running "git log --author='tim|friske' --regexp-ignore-case" I
would expect a match because lower- and upper case characters are
treated as equal.

When running "git --log --author='Tim|Friske' --fixed-strings" I would
expect *no* match because the string 'Tim|Friske' should be taken
literally and not be interpreted as a pattern.

When running "git --log --author='Tim|Friske' --basic-regexp" I would
expect *no* match because basic regular expression syntax does not
support "|" alternation.

Wouldn't it be nice to have all of the above options collaborate with
each other?

BR
Tim