git-gui: Run blame twice on the same file and display both outputs
authorShawn O. Pearce <spearce@spearce.org>
Sat, 2 Jun 2007 22:21:18 +0000 (18:21 -0400)
committerShawn O. Pearce <spearce@spearce.org>
Wed, 6 Jun 2007 05:26:51 +0000 (01:26 -0400)
commit172c92b47512adc45516cd72e607bea55b2414b4
treeda792d8b91c3fb9592b3093c2e879fe29649966b
parentdebcd0fd02bda82e3c81e6739bcb26135ac00b85
git-gui: Run blame twice on the same file and display both outputs

We now perform two passes over any input file given to the blame
viewer.  Our first pass is a quick "git-blame" with no options,
getting the details of how each line arrived into this file.  We
are specifically ignoring/omitting the rename detection logic as
this first pass is to determine why things got into the state they
are in.

Once the first pass is complete and is displayed in the UI we run
a second pass, using the much more CPU intensive "-M -C -C" options
to perform extensive rename/movement detection.  The output of this
second pass is shown in a different column, allowing the user to see
for any given line how it got to be, and if it came from somewhere
else, where that is.

This is actually very instructive when run on our own lib/branch.tcl
script.  That file grew recently out of a very large block of code
in git-gui.sh.  The first pass shows when I created that file, while
the second pass shows the original commit information.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
lib/blame.tcl