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 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html