--- gitk-git/gitk | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 46 insertions(+), 0 deletions(-) diff --git a/gitk-git/gitk b/gitk-git/gitk index 1da0b0a..ca121e4 100644 --- a/gitk-git/gitk +++ b/gitk-git/gitk @@ -1019,6 +1019,8 @@ proc makewindow {} { -command {diffvssel 0} $rowctxmenu add command -label "Diff selected -> this" \ -command {diffvssel 1} + $rowctxmenu add command -label "Diff Diff selected -> this" \ + -command {diffdiffvssel 1} $rowctxmenu add command -label "Make patch" -command mkpatch $rowctxmenu add command -label "Create tag" -command mktag $rowctxmenu add command -label "Write commit to file" -command writecommit @@ -6010,6 +6012,50 @@ proc doseldiff {oldid newid} { startdiff [list $oldid $newid] } +proc diffdiffvssel {dirn} { + global rowmenuid selectedline displayorder + + if {![info exists selectedline]} return + if {$dirn} { + set oldid [lindex $displayorder $selectedline] + set newid $rowmenuid + } else { + set oldid $rowmenuid + set newid [lindex $displayorder $selectedline] + } + addtohistory [list doseldiffdiff $oldid $newid] + doseldiffdiff $oldid $newid +} + +proc doseldiffdiff {oldid newid} { + global ctext + global commitinfo + + $ctext conf -state normal + clear_ctext + init_flist "Top" + $ctext insert end "From Commit " + $ctext insert end $oldid link0 + setlink $oldid link0 + $ctext insert end "\n " + $ctext insert end [lindex $commitinfo($oldid) 0] + $ctext insert end "\n\nTo Commit " + $ctext insert end $newid link1 + setlink $newid link1 + $ctext insert end "\n " + $ctext insert end [lindex $commitinfo($newid) 0] + $ctext insert end "\n" + $ctext insert end "\n" + $ctext conf -state disabled + $ctext tag remove found 1.0 end + + set diff [exec git diff-diff $oldid $newid] + $ctext conf -state normal + $ctext insert end "\n" + $ctext insert end $diff + $ctext conf -state disabled +} + proc mkpatch {} { global rowmenuid currentid commitinfo patchtop patchnum -- 1.5.4.rc0.37.geff3a-dirty - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html