All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Rast <trast@student.ethz.ch>
To: <git@vger.kernel.org>
Cc: Bo Yang <struggleyb.nku@gmail.com>
Subject: [PATCH v6 0/8] git log -L, cleaned up and (hopefully) fixed
Date: Tue, 14 Dec 2010 03:03:23 +0100	[thread overview]
Message-ID: <cover.1292291624.git.trast@student.ethz.ch> (raw)

This is (finally) a reroll of Bo's GSoC project.  It's still not meant
for final inclusion, see below, but I think it would be great if it
got some exposure to the masses to get feedback.

The main changes:

* It now uses -L 1,2:README option syntax.  Yay!  Hopefully this
  removes the main stumbling block.  It's also far less code.

* I squashed and rearranged the entire series to taste.  This does
  mean that the bulk of the code comes just in three commits (4, 5 and
  8).  I saw no real reason to split any finer -- the existing splits
  resulted in commits that did not work or sometimes even compile.  In
  fact I was half tempted to merge 5 and 4, too.

* -M and -C now actually work.

* As a result of the option syntax change and unrelated commits that
  since went into 'next', a few patches were superfluous and have been
  dropped.

* Various cleanup and refactorings where I saw the opportunity.

My todo/blockers for inclusion on this:

* There's got to be an obvious blunder or three considering the time.

* Any bugs found by testers :-)

* The tests are still in a weird form and lack the usual (for
  diff-based work) corner cases.

* git-blame should learn -L 1,2:README syntax so that they can be
  interchanged.  (Based on discussions at GitTogether.  Plans for the
  other way around have been dropped.)

Further directions:

* More refactorings would be nice, if possible.  There are about four
  types of ranges right now, handled in subtly different ways, leading
  to lots of code.

* Performance optimizations would also help :-)

* (This is *really* far out:) We had a thread where we discussed
  possibilities to make it walk forward as well as backward in
  history.  This will require some careful refactoring of the
  mechanisms, but would be very cool.  (-L n,m,rev:file works as a
  syntax, so we're not painting ourselves into a corner here).


Bo Yang (8):
  Refactor parse_loc
  Export three functions from diff.c
  Export rewrite_parents() for 'log -L'
  Implement line-history search (git log -L)
  log -L: support parent rewriting
  log -L: add --graph prefix before output
  log -L: add --full-line-diff option
  log -L: implement move/copy detection (-M/-C)

 Documentation/blame-options.txt     |   19 +-
 Documentation/git-log.txt           |   22 +
 Documentation/line-range-format.txt |   18 +
 Makefile                            |    2 +
 builtin/blame.c                     |   99 +--
 builtin/log.c                       |   79 ++-
 diff.c                              |    6 +-
 diff.h                              |   17 +
 line.c                              | 2153 +++++++++++++++++++++++++++++++++++
 line.h                              |   72 ++
 revision.c                          |   22 +-
 revision.h                          |   23 +-
 t/t4301-log-line-single-history.sh  |  685 +++++++++++
 t/t4302-log-line-merge-history.sh   |  174 +++
 t/t4303-log-line-move-detect.sh     |  238 ++++
 t/t4304-log-line-copy-detect.sh     |  220 ++++
 t/t8003-blame.sh                    |    6 +
 17 files changed, 3730 insertions(+), 125 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
 create mode 100755 t/t4303-log-line-move-detect.sh
 create mode 100755 t/t4304-log-line-copy-detect.sh

-- 
1.7.3.3.811.g76615

             reply	other threads:[~2010-12-14  2:04 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-12-14  2:03 Thomas Rast [this message]
2010-12-14  2:03 ` [PATCH 1/8] Refactor parse_loc Thomas Rast
2010-12-14 22:57   ` Junio C Hamano
2010-12-14 23:06     ` Thomas Rast
2010-12-14 23:20       ` Junio C Hamano
2010-12-14  2:03 ` [PATCH 2/8] Export three functions from diff.c Thomas Rast
2010-12-14 23:08   ` Junio C Hamano
2010-12-14  2:03 ` [PATCH 3/8] Export rewrite_parents() for 'log -L' Thomas Rast
2010-12-14  2:03 ` [PATCH 4/8] Implement line-history search (git log -L) Thomas Rast
2010-12-14  2:03 ` [PATCH 5/8] log -L: support parent rewriting Thomas Rast
2010-12-14  2:03 ` [PATCH 6/8] log -L: add --graph prefix before output Thomas Rast
2010-12-14  2:03 ` [PATCH 7/8] log -L: add --full-line-diff option Thomas Rast
2010-12-14  2:03 ` [PATCH 8/8] log -L: implement move/copy detection (-M/-C) Thomas Rast

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cover.1292291624.git.trast@student.ethz.ch \
    --to=trast@student.ethz.ch \
    --cc=git@vger.kernel.org \
    --cc=struggleyb.nku@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.