Modifications: 1. We do the parent rewriting with a more sane way. Just like the way we deal with multiple pathspec pruning, we rewrite P to its parent P^, if P^ can take all the interesting ranges from P. Otherwise, we keep P. 2. --graph will not override --full-line-diff any more. Now, they are two totally different options. You can use --full-line-diff with or without --graph. 3. Bug fix, this includes: * --graph outputs correct graph lines * mark a commit as root one if it takes no ranges * some other minor fix... Bo Yang (18): parse-options: enhance STOP_AT_NON_OPTION parse-options: add two helper functions Add the basic data structure for line level history Refactor parse_loc Parse the -L options Export three functions from diff.c Add range clone functions map/take range to the parent of commits Print the line log Hook line history into cmd_log, ensuring a topo-ordered walk Add tests for line history browser Make rewrite_parents public to other part of git Make graph_next_line external to other part of git Add parent rewriting to line history browser Add --graph prefix before line history output Add --full-line-diff option Add test cases for '--graph' of line level log Document line history browser Documentation/blame-options.txt | 19 +- Documentation/git-log.txt | 15 + Documentation/line-range-format.txt | 18 + Makefile | 2 + builtin/blame.c | 89 +-- builtin/log.c | 111 +++- diff.c | 6 +- diff.h | 17 + diffcore.h | 1 + graph.c | 14 +- graph.h | 10 + line.c | 1563 +++++++++++++++++++++++++++++++++++ line.h | 141 ++++ parse-options.c | 22 +- parse-options.h | 7 +- revision.c | 25 +- revision.h | 23 +- t/t4301-log-line-single-history.sh | 619 ++++++++++++++ t/t4302-log-line-merge-history.sh | 163 ++++ 19 files changed, 2736 insertions(+), 129 deletions(-) create mode 100644 Documentation/line-range-format.txt create mode 100644 line.c create mode 100644 line.h create mode 100755 t/t4301-log-line-single-history.sh create mode 100755 t/t4302-log-line-merge-history.sh -- 1.7.2.20.g388bbb -- 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