summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: a9c80b8)
raw | patch | inline | side by side (parent: a9c80b8)
author | Alexander Gavrilov <angavrilov@gmail.com> | |
Sat, 23 Aug 2008 08:30:51 +0000 (12:30 +0400) | ||
committer | Shawn O. Pearce <spearce@spearce.org> | |
Mon, 25 Aug 2008 05:00:01 +0000 (22:00 -0700) |
Add a context menu item that switches the view to the
parent of the commit under cursor. It is useful to see
how the file looked before the change, and find older
changes in the same lines.
Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
parent of the commit under cursor. It is useful to see
how the file looked before the change, and find older
changes in the same lines.
Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com>
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 c8975cfecdbe5dd4cf00a458d5b07a6ff9840f8c..ef4223179358857299af190c172436f57394146b 100644 (file)
--- a/lib/blame.tcl
+++ b/lib/blame.tcl
$w.ctxm add command \
-label [mc "Show History Context"] \
-command [cb _gitkcommit]
+ $w.ctxm add command \
+ -label [mc "Blame Parent Commit"] \
+ -command [cb _blameparent]
foreach i $w_columns {
for {set g 0} {$g < [llength $group_colors]} {incr g} {
set lno [lindex [split [$cur_w index $pos] .] 0]
set dat [lindex $line_data $lno]
if {$dat ne {}} {
- lappend history [list \
- $commit $path \
- $highlight_column \
- $highlight_line \
- [lindex [$w_file xview] 0] \
- [lindex [$w_file yview] 0] \
- ]
- set commit [lindex $dat 0]
- set path [lindex $dat 1]
- _load $this [list [lindex $dat 2]]
+ _load_new_commit $this \
+ [lindex $dat 0] \
+ [lindex $dat 1] \
+ [list [lindex $dat 2]]
}
}
+method _load_new_commit {new_commit new_path jump} {
+ lappend history [list \
+ $commit $path \
+ $highlight_column \
+ $highlight_line \
+ [lindex [$w_file xview] 0] \
+ [lindex [$w_file yview] 0] \
+ ]
+
+ set commit $new_commit
+ set path $new_path
+ _load $this $jump
+}
+
method _showcommit {cur_w lno} {
global repo_config
variable active_color
}
}
+method _blameparent {} {
+ set dat [_get_click_amov_info $this]
+ if {$dat ne {}} {
+ set cmit [lindex $dat 0]
+
+ if {[catch {set cparent [git rev-parse --verify "$cmit^"]}]} {
+ error_popup [strcat [mc "Cannot find parent commit:"] "\n\n$err"]
+ return;
+ }
+
+ _load_new_commit $this \
+ $cparent \
+ [lindex $dat 1] \
+ [list [lindex $dat 2]]
+ }
+}
+
method _show_tooltip {cur_w pos} {
if {$tooltip_wm ne {}} {
_open_tooltip $this $cur_w