Subject: [PATCH v9 0/5] git log -L

From: Thomas Rast <[email-masked]>
Date: Thu, 21 Mar 2013 13:52:35 +0100

Compared to the previous round at

  http://thread.gmane.org/gmane.comp.version-control.git/217236

I made the following changes (numbers from v8):

[1/5] Refactor parse_loc

  Based on Junio's suggestions, the refactoring is now to a new file
  line-range.c that line-log.c will later use.  (It still irks me too
  much to call straight into builtin/blame.c.)

  I also re-copied the existing functions, to make sure that they are
  the same.  Junio correctly spotted some differences, and since we
  claim to only refactor those are bad.

[2/5] Export rewrite_parents() for 'log -L'

  Unchanged.

[2.5/5] blame: introduce $ as "end of file" in -L syntax

  Dropped.  As Junio remarked, omitting the end is already a valid way
  of saying the same.

[3/5] Implement line-history search (git log -L)

  Integrated Ramsay's fixes and Junio's remarks.  Also made some minor
  cleanups.  Added a perf test.

[4/5] log -L: :pattern:file syntax to find by funcname

  Adjusted for changes in the earlier patches; otherwise the same.

[5/5] Speed up log -L... -M

  Added to this series, I posted the same patch earlier in the side
  thread about the bad performance.  The perf test from 4/5 neatly
  shows the difference.

Bo Yang (2):
  Refactor parse_loc
  Export rewrite_parents() for 'log -L'

Thomas Rast (3):
  Implement line-history search (git log -L)
  log -L: :pattern:file syntax to find by funcname
  Speed up log -L... -M

 Documentation/blame-options.txt     |   21 +-
 Documentation/git-blame.txt         |    6 +-
 Documentation/git-log.txt           |   23 +
 Documentation/line-range-format.txt |   25 +
 Makefile                            |    4 +
 builtin/blame.c                     |   99 +--
 builtin/log.c                       |   31 +
 line-log.c                          | 1228 +++++++++++++++++++++++++++++++++++
 line-log.h                          |   49 ++
 line-range.c                        |  237 +++++++
 line-range.h                        |   36 +
 log-tree.c                          |    4 +
 revision.c                          |   22 +-
 revision.h                          |   16 +-
 t/perf/p4211-line-log.sh            |   34 +
 t/t4211-line-log.sh                 |   40 ++
 t/t4211/expect.beginning-of-file    |   43 ++
 t/t4211/expect.end-of-file          |   62 ++
 t/t4211/expect.move-support-f       |   40 ++
 t/t4211/expect.simple-f             |   59 ++
 t/t4211/expect.simple-main          |   68 ++
 t/t4211/expect.two-ranges           |  102 +++
 t/t4211/expect.vanishes-early       |   39 ++
 t/t4211/history.export              |  330 ++++++++++
 t/t8003-blame-corner-cases.sh       |    6 +
 25 files changed, 2501 insertions(+), 123 deletions(-)
 create mode 100644 Documentation/line-range-format.txt
 create mode 100644 line-log.c
 create mode 100644 line-log.h
 create mode 100644 line-range.c
 create mode 100644 line-range.h
 create mode 100755 t/perf/p4211-line-log.sh
 create mode 100755 t/t4211-line-log.sh
 create mode 100644 t/t4211/expect.beginning-of-file
 create mode 100644 t/t4211/expect.end-of-file
 create mode 100644 t/t4211/expect.move-support-f
 create mode 100644 t/t4211/expect.simple-f
 create mode 100644 t/t4211/expect.simple-main
 create mode 100644 t/t4211/expect.two-ranges
 create mode 100644 t/t4211/expect.vanishes-early
 create mode 100644 t/t4211/history.export

-- 
1.8.2.241.gee8bb87