summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: f96cd7b)
raw | patch | inline | side by side (parent: f96cd7b)
author | Shawn O. Pearce <spearce@spearce.org> | |
Fri, 1 Jun 2007 05:04:46 +0000 (01:04 -0400) | ||
committer | Shawn O. Pearce <spearce@spearce.org> | |
Wed, 6 Jun 2007 05:26:44 +0000 (01:26 -0400) |
If two consecutive lines in the final file came from the same commit
then we store a "|" in the first column rather than the commit id,
for the second and subsequent lines in that block. This cleans up
the interface so runs associated with the same commit can be more
easily seen visually.
We also now use the abbreviation "work" for the uncommitted stuff in
your working directory, rather than "0000". This looks nicer to the
eyes and explains pretty quickly what is going on.
There was also a minor bug in the commit abbreviation column for the
last line of the file. This is now also fixed.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
then we store a "|" in the first column rather than the commit id,
for the second and subsequent lines in that block. This cleans up
the interface so runs associated with the same commit can be more
easily seen visually.
We also now use the abbreviation "work" for the uncommitted stuff in
your working directory, rather than "0000". This looks nicer to the
eyes and explains pretty quickly what is going on.
There was also a minor bug in the commit abbreviation column for the
last line of the file. This is now also fixed.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
lib/blame.tcl | patch | blob | history |
diff --git a/lib/blame.tcl b/lib/blame.tcl
index f48624a99eba8820230c7f30e6e9f802af1890ad..86160092c662673dfe0d852228097d9a68ed91df 100644 (file)
--- a/lib/blame.tcl
+++ b/lib/blame.tcl
set n $r_line_count
set lno $r_final_line
set cmit $r_commit
- set abbr [string range $cmit 0 4]
+
+ if {[regexp {^0{40}$} $cmit]} {
+ set abbr work
+ } else {
+ set abbr [string range $cmit 0 4]
+ }
+
+ if {![catch {set ncmit $line_commit([expr {$lno - 1}])}]} {
+ if {$ncmit eq $cmit} {
+ set abbr |
+ }
+ }
while {$n > 0} {
set lno_e "$lno.0 lineend + 1c"
set line_commit($lno) $cmit
set line_file($lno) $file
- $w_cgrp delete $lno.0 $lno_e
- $w_cgrp insert $lno.0 "$abbr\n"
+ $w_cgrp delete $lno.0 "$lno.0 lineend"
+ $w_cgrp insert $lno.0 $abbr
+ set abbr |
$w_cgrp tag add g$cmit $lno.0 $lno_e
$w_line tag add g$cmit $lno.0 $lno_e
incr blame_lines
}
+ if {![catch {set ncmit $line_commit($lno)}]} {
+ if {$ncmit eq $cmit} {
+ $w_cgrp delete $lno.0 "$lno.0 lineend + 1c"
+ $w_cgrp insert $lno.0 "|\n"
+ }
+ }
+
set hc $highlight_commit
if {$hc ne {}
&& [expr {$order($hc) + 1}] == $order($cmit)} {