Skip to content

Commit

Permalink
gitk: Add menu item for calling git gui blame
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Alexander Gavrilov authored and Paul Mackerras committed Aug 26, 2008
1 parent 39816d6 commit 77aa0ae
Showing 1 changed file with 23 additions and 0 deletions.
23 changes: 23 additions & 0 deletions gitk
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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} {}
Expand Down

0 comments on commit 77aa0ae

Please sign in to comment.