1. 26 5月, 2017 3 次提交
    • Æ
      perf: add a comparison test of log --grep regex engines · c8f39be6
      Ævar Arnfjörð Bjarmason 提交于
      Add a very basic performance comparison test comparing the POSIX
      basic, extended and perl engines with patterns matching log messages
      via --grep=<pattern>.
      
          $ GIT_PERF_REPEAT_COUNT=10 GIT_PERF_LARGE_REPO=~/g/linux ./run p4220-log-grep-engines.sh
          [...]
          Test                                                  this tree
          ---------------------------------------------------------------------
          4220.1: basic log --grep='how.to'                     6.22(6.00+0.21)
          4220.2: extended log --grep='how.to'                  6.23(5.98+0.23)
          4220.3: perl log --grep='how.to'                      6.07(5.79+0.25)
          4220.5: basic log --grep='^how to'                    6.19(5.93+0.22)
          4220.6: extended log --grep='^how to'                 6.19(5.93+0.23)
          4220.7: perl log --grep='^how to'                     6.14(5.88+0.24)
          4220.9: basic log --grep='[how] to'                   6.96(6.65+0.28)
          4220.10: extended log --grep='[how] to'               6.96(6.69+0.24)
          4220.11: perl log --grep='[how] to'                   6.95(6.58+0.33)
          4220.13: basic log --grep='\(e.t[^ ]*\|v.ry\) rare'   7.10(6.80+0.27)
          4220.14: extended log --grep='(e.t[^ ]*|v.ry) rare'   7.07(6.80+0.26)
          4220.15: perl log --grep='(e.t[^ ]*|v.ry) rare'       7.70(7.46+0.22)
          4220.17: basic log --grep='m\(ú\|u\)lt.b\(æ\|y\)te'   6.12(5.87+0.24)
          4220.18: extended log --grep='m(ú|u)lt.b(æ|y)te'      6.14(5.84+0.26)
          4220.19: perl log --grep='m(ú|u)lt.b(æ|y)te'          6.16(5.93+0.20)
      
      With -i:
      
          $ GIT_PERF_REPEAT_COUNT=10 GIT_PERF_LARGE_REPO=~/g/linux GIT_PERF_4220_LOG_OPTS=' -i' ./run p4220-log-grep-engines.sh
          [...]
          Test                                                     this tree
          ------------------------------------------------------------------------
          4220.1: basic log -i --grep='how.to'                     6.74(6.41+0.32)
          4220.2: extended log -i --grep='how.to'                  6.78(6.55+0.22)
          4220.3: perl log -i --grep='how.to'                      6.06(5.77+0.28)
          4220.5: basic log -i --grep='^how to'                    6.80(6.57+0.22)
          4220.6: extended log -i --grep='^how to'                 6.83(6.52+0.29)
          4220.7: perl log -i --grep='^how to'                     6.16(5.94+0.20)
          4220.9: basic log -i --grep='[how] to'                   7.87(7.61+0.24)
          4220.10: extended log -i --grep='[how] to'               7.85(7.57+0.27)
          4220.11: perl log -i --grep='[how] to'                   7.03(6.75+0.25)
          4220.13: basic log -i --grep='\(e.t[^ ]*\|v.ry\) rare'   8.68(8.41+0.25)
          4220.14: extended log -i --grep='(e.t[^ ]*|v.ry) rare'   8.80(8.44+0.28)
          4220.15: perl log -i --grep='(e.t[^ ]*|v.ry) rare'       7.85(7.56+0.26)
          4220.17: basic log -i --grep='m\(ú\|u\)lt.b\(æ\|y\)te'   6.94(6.68+0.24)
          4220.18: extended log -i --grep='m(ú|u)lt.b(æ|y)te'      7.04(6.76+0.24)
          4220.19: perl log -i --grep='m(ú|u)lt.b(æ|y)te'          6.26(5.92+0.29)
      
      See commit ("perf: add a comparison test of grep regex engines",
      2017-04-19) for details on the machine the above test run was executed
      on.
      
      Before commit ("log: make --regexp-ignore-case work with
      --perl-regexp", 2017-05-20) this test will almost definitely
      fail (depending on the repo) if passed the -i option, since it wasn't
      properly supported under PCRE.
      Signed-off-by: NÆvar Arnfjörð Bjarmason <avarab@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      c8f39be6
    • Æ
      perf: add a comparison test of grep regex engines with -F · bc22d813
      Ævar Arnfjörð Bjarmason 提交于
      Add a performance comparison test of grep regex engines given fixed
      strings.
      
      The current logic in compile_regexp() ignores the engine parameter and
      uses kwset() to search for these, so this test shows no difference
      between engines right now:
      
          $ GIT_PERF_REPEAT_COUNT=10 GIT_PERF_LARGE_REPO=~/g/linux ./run p7821-grep-engines-fixed.sh
          [...]
          Test                             this tree
          ------------------------------------------------
          7821.1: fixed grep int           0.56(1.67+0.68)
          7821.2: basic grep int           0.57(1.70+0.57)
          7821.3: extended grep int        0.59(1.76+0.51)
          7821.4: perl grep int            1.08(1.71+0.55)
          7821.6: fixed grep uncommon      0.23(0.55+0.50)
          7821.7: basic grep uncommon      0.24(0.55+0.50)
          7821.8: extended grep uncommon   0.26(0.55+0.52)
          7821.9: perl grep uncommon       0.24(0.58+0.47)
          7821.11: fixed grep æ            0.36(1.30+0.42)
          7821.12: basic grep æ            0.36(1.32+0.40)
          7821.13: extended grep æ         0.38(1.30+0.42)
          7821.14: perl grep æ             0.35(1.24+0.48)
      
      Only when run with -i via GIT_PERF_7821_GREP_OPTS=' -i' do we avoid
      avoid going through the same kwset.[ch] codepath, see the "Even when
      -F..."  comment in grep.c. This only kicks for the non-ASCII case:
      
          $ GIT_PERF_REPEAT_COUNT=10 GIT_PERF_LARGE_REPO=~/g/linux GIT_PERF_7821_GREP_OPTS=' -i' ./run p7821-grep-engines-fixed.sh
          [...]
          Test                                this tree
          ---------------------------------------------------
          7821.1: fixed grep -i int           0.62(2.10+0.57)
          7821.2: basic grep -i int           0.68(1.90+0.61)
          7821.3: extended grep -i int        0.78(1.94+0.57)
          7821.4: perl grep -i int            0.98(1.78+0.74)
          7821.6: fixed grep -i uncommon      0.24(0.44+0.64)
          7821.7: basic grep -i uncommon      0.25(0.56+0.54)
          7821.8: extended grep -i uncommon   0.27(0.62+0.45)
          7821.9: perl grep -i uncommon       0.24(0.59+0.49)
          7821.11: fixed grep -i æ            0.30(0.96+0.39)
          7821.12: basic grep -i æ            0.27(0.92+0.44)
          7821.13: extended grep -i æ         0.28(0.90+0.46)
          7821.14: perl grep -i æ             0.28(0.74+0.49)
      
      I'm planning to change how fixed-string searching happens. This test
      gives a baseline for comparing performance before & after any such
      change.
      
      See commit ("perf: add a comparison test of grep regex engines",
      2017-04-19) for details on the machine the above test run was executed
      on.
      Signed-off-by: NÆvar Arnfjörð Bjarmason <avarab@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      bc22d813
    • Æ
      perf: add a comparison test of grep regex engines · 3878c7a5
      Ævar Arnfjörð Bjarmason 提交于
      Add a very basic performance comparison test comparing the POSIX
      basic, extended and perl engines.
      
      In theory the "basic" and "extended" engines should be implemented
      using the same underlying code with a slightly different pattern
      parser, but some implementations may not do this. Jump through some
      slight hoops to test both, which is worthwhile since "basic" is the
      default.
      
      Running this on an i7 3.4GHz Linux 4.9.0-2 Debian testing against a
      checkout of linux.git & latest upstream PCRE, both PCRE and git
      compiled with -O3 using gcc 7.1.1:
      
          $ GIT_PERF_REPEAT_COUNT=10 GIT_PERF_LARGE_REPO=~/g/linux ./run p7820-grep-engines.sh
          [...]
          Test                                            this tree
          ---------------------------------------------------------------
          7820.1: basic grep 'how.to'                     0.34(1.24+0.53)
          7820.2: extended grep 'how.to'                  0.33(1.23+0.45)
          7820.3: perl grep 'how.to'                      0.31(1.05+0.56)
          7820.5: basic grep '^how to'                    0.32(1.24+0.42)
          7820.6: extended grep '^how to'                 0.33(1.20+0.44)
          7820.7: perl grep '^how to'                     0.57(2.67+0.42)
          7820.9: basic grep '[how] to'                   0.51(2.16+0.45)
          7820.10: extended grep '[how] to'               0.49(2.20+0.43)
          7820.11: perl grep '[how] to'                   0.56(2.60+0.43)
          7820.13: basic grep '\(e.t[^ ]*\|v.ry\) rare'   0.66(3.25+0.40)
          7820.14: extended grep '(e.t[^ ]*|v.ry) rare'   0.65(3.19+0.46)
          7820.15: perl grep '(e.t[^ ]*|v.ry) rare'       1.05(5.74+0.34)
          7820.17: basic grep 'm\(ú\|u\)lt.b\(æ\|y\)te'   0.34(1.28+0.47)
          7820.18: extended grep 'm(ú|u)lt.b(æ|y)te'      0.34(1.38+0.38)
          7820.19: perl grep 'm(ú|u)lt.b(æ|y)te'          0.39(1.56+0.44)
      
      Options can also be passed to git-grep via the GIT_PERF_7820_GREP_OPTS
      environment variable. There are various modes such as "-v" that have
      very different performance profiles, but handling the combinatorial
      explosion of testing all those options would make this script much
      more complex and harder to maintain. Instead just add the ability to
      do one-shot runs with arbitrary options, e.g.:
      
          $ GIT_PERF_REPEAT_COUNT=10 GIT_PERF_LARGE_REPO=~/g/linux GIT_PERF_7820_GREP_OPTS=" -i" ./run p7820-grep-engines.sh
          [...]
          Test                                               this tree
          ------------------------------------------------------------------
          7820.1: basic grep -i 'how.to'                     0.49(1.72+0.38)
          7820.2: extended grep -i 'how.to'                  0.46(1.64+0.42)
          7820.3: perl grep -i 'how.to'                      0.44(1.45+0.45)
          7820.5: basic grep -i '^how to'                    0.47(1.76+0.38)
          7820.6: extended grep -i '^how to'                 0.47(1.70+0.42)
          7820.7: perl grep -i '^how to'                     0.65(2.72+0.37)
          7820.9: basic grep -i '[how] to'                   0.86(3.64+0.42)
          7820.10: extended grep -i '[how] to'               0.84(3.62+0.46)
          7820.11: perl grep -i '[how] to'                   0.73(3.06+0.39)
          7820.13: basic grep -i '\(e.t[^ ]*\|v.ry\) rare'   1.63(8.13+0.36)
          7820.14: extended grep -i '(e.t[^ ]*|v.ry) rare'   1.64(8.01+0.44)
          7820.15: perl grep -i '(e.t[^ ]*|v.ry) rare'       1.44(6.88+0.44)
          7820.17: basic grep -i 'm\(ú\|u\)lt.b\(æ\|y\)te'   0.66(2.67+0.44)
          7820.18: extended grep -i 'm(ú|u)lt.b(æ|y)te'      0.66(2.67+0.43)
          7820.19: perl grep -i 'm(ú|u)lt.b(æ|y)te'          0.59(2.31+0.37)
      Signed-off-by: NÆvar Arnfjörð Bjarmason <avarab@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      3878c7a5
  2. 21 5月, 2017 16 次提交
    • Æ
      perf: emit progress output when unpacking & building · b11ad029
      Ævar Arnfjörð Bjarmason 提交于
      Amend the t/perf/run output so that in addition to the "Running N
      tests" heading currently being emitted, it also emits "Unpacking $rev"
      and "Building $rev" when setting up the build/$rev directory & when
      building it, respectively.
      
      This makes it easier to see what's going on and what revision is being
      tested as the output scrolls by.
      Signed-off-by: NÆvar Arnfjörð Bjarmason <avarab@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      b11ad029
    • Æ
      perf: add a GIT_PERF_MAKE_COMMAND for when *_MAKE_OPTS won't do · 88b6197d
      Ævar Arnfjörð Bjarmason 提交于
      Add a git GIT_PERF_MAKE_COMMAND variable to compliment the existing
      GIT_PERF_MAKE_OPTS facility. This allows specifying an arbitrary shell
      command to execute instead of 'make'.
      
      This is useful e.g. in cases where the name, semantics or defaults of
      a Makefile flag have changed over time. It can even be used to change
      the contents of the tree, useful for monkeypatching ancient versions
      of git to get them to build.
      
      This opens Pandora's box in some ways, it's now possible to
      "jailbreak" the perf environment and e.g. modify the source tree via
      this arbitrary instead of just issuing a custom "make" command, such a
      command has to be re-entrant in the sense that subsequent perf runs
      will re-use the possibly modified tree.
      
      It would be pointless to try to mitigate or work around that caveat in
      a tool purely aimed at Git developers, so this change makes no attempt
      to do so.
      Signed-off-by: NÆvar Arnfjörð Bjarmason <avarab@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      88b6197d
    • Æ
      grep: add tests to fix blind spots with \0 patterns · 966be955
      Ævar Arnfjörð Bjarmason 提交于
      Address a big blind spot in the tests for patterns containing \0. The
      is_fixed() function considers any string that contains \0 fixed, even
      if it contains regular expression metacharacters, those patterns are
      currently matched with kwset.
      
      Before this change removing that memchr(s, 0, len) check from
      is_fixed() wouldn't change the result of any of the tests, since
      regcomp() will happily match the part before the \0.
      
      The kwset path is dependent on whether the the -i flag is on, and
      whether the pattern has any non-ASCII characters, but none of this was
      tested for.
      Signed-off-by: NÆvar Arnfjörð Bjarmason <avarab@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      966be955
    • Æ
      grep: prepare for testing binary regexes containing rx metacharacters · 12fc32fa
      Ævar Arnfjörð Bjarmason 提交于
      Add setup code needed for testing regexes that contain both binary
      data and regex metacharacters.
      
      The POSIX regcomp() function inherently can't support that, because it
      takes a \0-delimited char *, but other regex engines APIs like PCRE v2
      take a pattern/length pair, and are thus able to handle \0s in
      patterns as well as any other character.
      
      When kwset was imported in commit 9eceddee ("Use kwset in grep",
      2011-08-21) this limitation was fixed, but at the expense of
      introducing the undocumented limitation that any pattern containing \0
      implicitly becomes a fixed match (equivalent to -F having been
      provided).
      
      That's not something we'd like to keep in the future. The inability to
      match patterns containing \0 is a leaky implementation detail.
      
      So add tests as a first step towards changing that. In order to test
      that \0-patterns can properly match as regexes the test string needs
      to have some regex metacharacters in it.
      
      There were other blind spots in the tests. The code around kwset
      specially handles case-insensitive & non-ASCII data, but there were no
      tests for this.
      
      Fix all of that by amending the text being matched to contain both
      regex metacharacters & non-ASCII data.
      Signed-off-by: NÆvar Arnfjörð Bjarmason <avarab@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      12fc32fa
    • Æ
      grep: add a test helper function for less verbose -f \0 tests · 77f6f440
      Ævar Arnfjörð Bjarmason 提交于
      Add a helper function to make the tests which check for patterns with
      \0 in them more succinct. Right now this isn't a big win, but
      subsequent commits will add a lot more of these tests.
      
      The helper is based on the match() function in t3070-wildmatch.sh.
      Signed-off-by: NÆvar Arnfjörð Bjarmason <avarab@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      77f6f440
    • Æ
      grep: add tests for grep pattern types being passed to submodules · 5ee6f1a2
      Ævar Arnfjörð Bjarmason 提交于
      Add testing for grep pattern types being correctly passed to
      submodules. The pattern "(.|.)[\d]" matches differently under
      fixed (not at all), and then matches different lines under
      basic/extended & perl regular expressions, so this change asserts that
      the pattern type is passed along correctly.
      Signed-off-by: NÆvar Arnfjörð Bjarmason <avarab@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      5ee6f1a2
    • Æ
      grep: amend submodule recursion test for regex engine testing · 5d52a30e
      Ævar Arnfjörð Bjarmason 提交于
      Amend the submodule recursion test to prepare it for subsequent tests
      of whether it passes along the grep.patternType to the submodule
      greps.
      
      This is the result of searching & replacing:
      
          foobar -> (1|2)d(3|4)
          foo    -> (1|2)
          bar    -> (3|4)
      
      Currently there's no tests for whether e.g. -P or -E is correctly
      passed along, tests for that will be added in a follow-up change, but
      first add content to the tests which will match differently under
      different regex engines.
      
      Reuse the pattern established in an earlier commit of mine in this
      series ("log: add exhaustive tests for pattern style options &
      config", 2017-04-07). The pattern "(.|.)[\d]" will match this content
      differently under fixed/basic/extended & perl.
      
      This test code was originally added in commit 0281e487 ("grep:
      optionally recurse into submodules", 2016-12-16).
      Signed-off-by: NÆvar Arnfjörð Bjarmason <avarab@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      5d52a30e
    • Æ
      grep: add tests for --threads=N and grep.threads · c5813658
      Ævar Arnfjörð Bjarmason 提交于
      Add tests for --threads=N being supplied on the command-line, or when
      grep.threads=N being supplied in the configuration.
      
      When the threading support was made run-time configurable in commit
      89f09dd3 ("grep: add --threads=<num> option and grep.threads
      configuration", 2015-12-15) no tests were added for it.
      
      In developing a change to the grep code I was able to make
      '--threads=1 <pat>` segfault, while the test suite still passed. This
      change fixes that blind spot in the tests.
      
      In addition to asserting that asking for N threads shouldn't segfault,
      test that the grep output given any N is the same.
      
      The choice to test only 1..10 as opposed to 1..8 or 1..16 or whatever
      is arbitrary. Testing 1..1024 works locally for me (but gets
      noticeably slower as more threads are spawned). Given the structure of
      the code there's no reason to test an arbitrary number of threads,
      only 0, 1 and >=2 are special modes of operation.
      
      A later patch introduces a PTHREADS test prerequisite which is true
      under NO_PTHREADS=UnfortunatelyYes, but even under NO_PTHREADS it's
      fine to test --threads=N, we'll just ignore it and not use
      threading. So these tests also make sense under that mode to assert
      that --threads=N without pthreads still returns expected results.
      Signed-off-by: NÆvar Arnfjörð Bjarmason <avarab@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      c5813658
    • Æ
      grep: change non-ASCII -i test to stop using --debug · e01b4dab
      Ævar Arnfjörð Bjarmason 提交于
      Change a non-ASCII case-insensitive test case to stop using --debug,
      and instead simply test for the expected results.
      
      The test coverage remains the same with this change, but the test
      won't break due to internal refactoring.
      
      This test was added in commit 793dc676 ("grep/icase: avoid kwsset
      when -F is specified", 2016-06-25). It was asserting that the regex
      must be compiled with compile_fixed_regexp(), instead test for the
      expected results, allowing the underlying implementation to change.
      Signed-off-by: NÆvar Arnfjörð Bjarmason <avarab@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      e01b4dab
    • Æ
      grep: add a test for backreferences in PCRE patterns · 4aeb720d
      Ævar Arnfjörð Bjarmason 提交于
      Add a test for backreferences such as (.)\1 in PCRE patterns. This
      test ensures that the PCRE_NO_AUTO_CAPTURE option isn't turned
      on. Before this change turning it on would break these sort of
      patterns, but wouldn't break any tests.
      Signed-off-by: NÆvar Arnfjörð Bjarmason <avarab@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      4aeb720d
    • Æ
      grep: add a test asserting that --perl-regexp dies when !PCRE · 9001c192
      Ævar Arnfjörð Bjarmason 提交于
      Add a test asserting that when --perl-regexp (and -P for grep) is
      given to git-grep & git-log that we die with an error.
      
      In developing the PCRE v2 series I introduced a regression where -P
      would (through control-flow fall-through) become synonymous with basic
      POSIX matching. I.e. 'git grep -P '[\d]' would match "d" instead of
      digits.
      
      The entire test suite would still pass with this serious regression,
      since everything that tested for --perl-regexp would be guarded by the
      PCRE prerequisite, fix that blind-spot by adding tests under !PCRE
      asserting that git must die when given --perl-regexp or -P.
      Signed-off-by: NÆvar Arnfjörð Bjarmason <avarab@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      9001c192
    • Æ
      log: make --regexp-ignore-case work with --perl-regexp · 9e3cbc59
      Ævar Arnfjörð Bjarmason 提交于
      Make the --regexp-ignore-case option work with --perl-regexp. This
      never worked, and there was no test for this. Fix the bug and add a
      test.
      
      When PCRE support was added in commit 63e7e9d8 ("git-grep: Learn
      PCRE", 2011-05-09) compile_pcre_regexp() would only check
      opt->ignore_case, but when the --perl-regexp option was added in
      commit 727b6fc3 ("log --grep: accept --basic-regexp and
      --perl-regexp", 2012-10-03) the code didn't set the opt->ignore_case.
      
      Change the test suite to test for -i and --invert-regexp with
      basic/extended/perl patterns in addition to fixed, which was the only
      patternType that was tested for before in combination with those
      options.
      Signed-off-by: NÆvar Arnfjörð Bjarmason <avarab@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      9e3cbc59
    • Æ
      log: add exhaustive tests for pattern style options & config · 9df46763
      Ævar Arnfjörð Bjarmason 提交于
      Add exhaustive tests for how the different grep.patternType options &
      the corresponding command-line options affect git-log.
      
      Before this change it was possible to patch revision.c so that the
      --basic-regexp option was synonymous with --extended-regexp, and
      --perl-regexp wasn't recognized at all, and still have 100% of the
      test suite pass.
      
      This was because the first test being modified here, added in commit
      34a4ae55 ("log --grep: use the same helper to set -E/-F options as
      "git grep"", 2012-10-03), didn't actually check whether we'd enabled
      extended regular expressions as distinct from re-toggling non-fixed
      string support.
      
      Fix that by changing the pattern to a pattern that'll only match if
      --extended-regexp option is provided, but won't match under the
      default --basic-regexp option.
      
      Other potential regressions were possible since there were no tests
      for the rest of the combinations of grep.patternType configuration
      toggles & corresponding git-log command-line options. Add exhaustive
      tests for those.
      
      The patterns being passed to fixed/basic/extended/PCRE are carefully
      crafted to return the wrong thing if the grep engine were to pick any
      other matching method than the one it's told to use.
      Signed-off-by: NÆvar Arnfjörð Bjarmason <avarab@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      9df46763
    • Æ
      test-lib: rename the LIBPCRE prerequisite to PCRE · 3eb585c1
      Ævar Arnfjörð Bjarmason 提交于
      Rename the LIBPCRE prerequisite to PCRE. This is for preparation for
      libpcre2 support, where having just "LIBPCRE" would be confusing as it
      implies v1 of the library.
      
      None of these tests are incompatible between versions 1 & 2 of
      libpcre, it's less confusing to give them a more general name to make
      it clear that they work on both library versions.
      Signed-off-by: NÆvar Arnfjörð Bjarmason <avarab@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      3eb585c1
    • Æ
      grep & rev-list doc: stop promising libpcre for --perl-regexp · d048cb13
      Ævar Arnfjörð Bjarmason 提交于
      Stop promising in our grep & rev-list options documentation that we're
      always going to be using libpcre when given the --perl-regexp option.
      
      Instead talk about using "Perl-compatible regular expressions" and
      using these types of patterns using "a compile-time dependency".
      
      Saying "libpcre" means that we're talking about libpcre.so, which is
      always going to be v1. This change is part of an ongoing saga to add
      support for libpcre2, which comes with PCRE v2.
      
      In the future we might use some completely unrelated library to
      provide perl-compatible regular expression support. By wording the
      documentation differently and not promising any specific version of
      PCRE or even PCRE at all we have more wiggle room to change the
      implementation.
      Signed-off-by: NÆvar Arnfjörð Bjarmason <avarab@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      d048cb13
    • Æ
      Makefile & configure: reword inaccurate comment about PCRE · 072473e6
      Ævar Arnfjörð Bjarmason 提交于
      Reword an outdated & inaccurate comment which suggests that only
      git-grep can use PCRE.
      
      This comment was added back when PCRE support was initially added in
      commit 63e7e9d8 ("git-grep: Learn PCRE", 2011-05-09), and was true
      at the time.
      
      It hasn't been telling the full truth since git-log learned to use
      PCRE with --grep in commit 727b6fc3 ("log --grep: accept
      --basic-regexp and --perl-regexp", 2012-10-03), and more importantly
      is likely to get more inaccurate over time as more use is made of PCRE
      in other areas.
      
      Reword it to be more future-proof, and to more clearly explain that
      this enables user-initiated runtime behavior.
      
      Copy/pasting this so much in configure.ac is lame, these Makefile-like
      flags aren't even used by autoconf, just the corresponding
      --with[out]-* options. But copy/pasting the comments that make sense
      for the Makefile to configure.ac where they make less sense is the
      pattern everything else follows in that file. I'm not going to war
      against that as part of this change, just following the existing
      pattern.
      Signed-off-by: NÆvar Arnfjörð Bjarmason <avarab@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      072473e6
  3. 09 5月, 2017 12 次提交
  4. 06 5月, 2017 3 次提交
  5. 05 5月, 2017 6 次提交