Code

git-gui: Favor the original annotations over the recent ones
authorShawn O. Pearce <spearce@spearce.org>
Wed, 6 Jun 2007 07:22:22 +0000 (03:22 -0400)
committerShawn O. Pearce <spearce@spearce.org>
Wed, 6 Jun 2007 07:22:22 +0000 (03:22 -0400)
Usually when you are looking at blame annotations for a region of
a file you are more interested in why something was originally
done then why it is here now.  This is because most of the time
when we get original annotation data we are looking at a simple
refactoring performed to better organize code, not to change its
semantic meaning or function.  Reorganizations are sometimes of
interest, but not usually.

We now show the original commit data first in the tooltip.  This
actually looks quite nice as the original commit will usually have an
author date prior to the current (aka move/copy) annotation's commit,
so the two commits will now tend to appear in chronological order.

I also found myself to always be clicking on the line of interest
in the file column but I always wanted the original tracking data
and not the move/copy data.  So I changed our default commit from
$asim_data (the simple move/copy annotation) to the more complex
$amov_data (the -M -C -C original annotation).

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

index 0400d6effeca05aae2c0e49fd4036acbb93968aa..cb0f2c40b759848fd2fc5e3f42e89c01d7113712 100644 (file)
@@ -731,12 +731,12 @@ method _showcommit {cur_w lno} {
                }
        }
 
-       if {$cur_w eq $w_amov} {
-               set dat [lindex $amov_data $lno]
-               set highlight_column $w_amov
-       } else {
+       if {$cur_w eq $w_asim} {
                set dat [lindex $asim_data $lno]
                set highlight_column $w_asim
+       } else {
+               set dat [lindex $amov_data $lno]
+               set highlight_column $w_amov
        }
 
        $w_cviewer conf -state normal
@@ -908,7 +908,9 @@ method _open_tooltip {cur_w} {
        $tooltip_t insert end "$summary"
 
        if {$org ne {} && [lindex $org 0] ne $cmit} {
-               $tooltip_t insert 0.0 "Copied/Moved Here By:\n" section_header
+               set save [$tooltip_t get 0.0 end]
+               $tooltip_t delete 0.0 end
+
                set cmit [lindex $org 0]
                set file [lindex $org 1]
                lappend tooltip_commit $cmit
@@ -923,17 +925,19 @@ method _open_tooltip {cur_w} {
                        -format {%Y-%m-%d %H:%M:%S}
                ]}
 
-               $tooltip_t insert end "\n\n"
                $tooltip_t insert end "Originally By:\n" section_header
                $tooltip_t insert end "commit $cmit\n"
                $tooltip_t insert end "$author_name  $author_time\n"
-               $tooltip_t insert end "$summary"
+               $tooltip_t insert end "$summary\n"
 
                if {$file ne $path} {
-                       $tooltip_t insert end "\n"
                        $tooltip_t insert end "In File: " section_header
-                       $tooltip_t insert end $file
+                       $tooltip_t insert end "$file\n"
                }
+
+               $tooltip_t insert end "\n"
+               $tooltip_t insert end "Copied Or Moved Here By:\n" section_header
+               $tooltip_t insert end $save
        }
 
        $tooltip_t conf -state disabled