gitk: Add menu item for calling git gui blame
This adds a new item to the file list popup menu, that calls git gui blame for the selected file, starting with the first parent of the current commit. Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
parent
39816d60e1
commit
77aa0ae8d3
23
gitk
23
gitk
@ -2214,6 +2214,8 @@ proc makewindow {} {
|
||||
-command {flist_hl 1}
|
||||
$flist_menu add command -label [mc "External diff"] \
|
||||
-command {external_diff}
|
||||
$flist_menu add command -label [mc "Blame parent commit"] \
|
||||
-command {external_blame 1}
|
||||
}
|
||||
|
||||
# Windows sends all mouse wheel events to the current focused window, not
|
||||
@ -3021,6 +3023,27 @@ proc external_diff {} {
|
||||
}
|
||||
}
|
||||
|
||||
proc external_blame {parent_idx} {
|
||||
global flist_menu_file
|
||||
global nullid nullid2
|
||||
global parentlist selectedline currentid
|
||||
|
||||
if {$parent_idx > 0} {
|
||||
set base_commit [lindex $parentlist $selectedline [expr {$parent_idx-1}]]
|
||||
} else {
|
||||
set base_commit $currentid
|
||||
}
|
||||
|
||||
if {$base_commit eq {} || $base_commit eq $nullid || $base_commit eq $nullid2} {
|
||||
error_popup [mc "No such commit"]
|
||||
return
|
||||
}
|
||||
|
||||
if {[catch {exec git gui blame $base_commit $flist_menu_file &} err]} {
|
||||
error_popup [mc "git gui blame: command failed: $err"]
|
||||
}
|
||||
}
|
||||
|
||||
# delete $dir when we see eof on $f (presumably because the child has exited)
|
||||
proc delete_at_eof {f dir} {
|
||||
while {[gets $f line] >= 0} {}
|
||||
|
Loading…
Reference in New Issue
Block a user