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