This is a re-roll of [1] which teaches git-blame to accept multiple -L
ranges. It is built atop [6] (es/blame-L-more in 'pu').

The series is longer than expected since it includes a few more cleanup
patches beyond those already posted separately [2], [3], [4], [5], [6];
and because it implements relative /RE/ searches requested by Junio [7],
and brings git-log's multiple -L behavior in line with git-blame's.
Despite the length of the series, the patches are mostly small and
simple.


Changes since v1:

* Make /RE/ searches relative to end of previous -L, if any [7]. Ditto
  for :RE searches.

* Introduce ^/RE/ and ^:RE to search from start of file.

* Add (lots of) tests.

* Update documentation.

* Collect ranges via 'struct range_set' rather than (ab)using
  blame.c:coalesce() and add_blame_range().


Quick overview of patches:

1-2: More cleanups akin to [2], [3], [4], [5], [6].

3-7: Implement git-blame multiple -L support; add tests; update
  documentation.

8-14: Make /RE/ and :RE searches relative; introduce ^/RE/ and ^:RE to
  search from start of file; add tests; update documentation.

15-16: Reject bogus -L inputs for line numbers less than 1. This comes
  late in the series because this case becomes much easier to detect
  following patch 8.


[1]: http://thread.gmane.org/gmane.comp.version-control.git/229755
[2]: http://thread.gmane.org/gmane.comp.version-control.git/229917
[3]: http://thread.gmane.org/gmane.comp.version-control.git/230532
[4]: 
http://git.661346.n2.nabble.com/PATCH-0-6-fix-blame-L-regression-add-tests-tp7592174.html
[5]: http://thread.gmane.org/gmane.comp.version-control.git/231035
[6]: http://thread.gmane.org/gmane.comp.version-control.git/231412
[7]: http://article.gmane.org/gmane.comp.version-control.git/229966


Eric Sunshine (16):
  git-log.txt: place each -L option variation on its own line
  line-range-format.txt: clarify -L:regex usage form
  range-set: publish API for re-use by git-blame -L
  blame: inline one-line function into its lone caller
  blame: accept multiple -L ranges
  t8001/t8002: blame: add tests of multiple -L options
  blame: document multiple -L support
  line-range: teach -L/RE/ to search relative to anchor point
  blame: teach -L/RE/ to search from end of previous -L range
  log: teach -L/RE/ to search from end of previous -L range
  line-range-format.txt: document -L/RE/ relative search
  line-range: teach -L^/RE/ to search from start of file
  line-range: teach -L:RE to search from end of previous -L range
  line-range: teach -L^:RE to search from start of file
  t8001/t8002: blame: add tests of -L line numbers less than 1
  line-range: reject -L line numbers less than 1

 Documentation/blame-options.txt     |  10 +--
 Documentation/git-blame.txt         |  10 ++-
 Documentation/git-log.txt           |   5 +-
 Documentation/line-range-format.txt |  16 +++--
 builtin/blame.c                     |  93 ++++++++++++++------------
 line-log.c                          |  25 ++++---
 line-log.h                          |  12 ++++
 line-range.c                        |  62 +++++++++++++----
 line-range.h                        |   5 +-
 t/annotate-tests.sh                 | 130 ++++++++++++++++++++++++++++++++++--
 t/t4211-line-log.sh                 |   2 +-
 11 files changed, 282 insertions(+), 88 deletions(-)

-- 
1.8.4.rc1.409.gbd48715

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to