On Tue, May 8, 2018 at 2:22 PM, Alex Riesen <alexander.riesen@xxxxxxxxxxx> wrote: > From: Alex Riesen <raa.lkml@xxxxxxxxx> > > Similar to a git gui feature which visualizes history in a submodule, > the submodules cause the gitk be started inside the submodule. > > Signed-off-by: Alex Riesen <raa.lkml@xxxxxxxxx> > --- > gitk | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/gitk b/gitk > index d34833f..1ec545e 100755 > --- a/gitk > +++ b/gitk > @@ -2682,6 +2682,7 @@ proc makewindow {} { > {mc "External diff" command {external_diff}} > {mc "Blame parent commit" command {external_blame 1}} > {mc "Copy path" command {clipboard clear; clipboard append $flist_menu_file}} > + {mc "Run gitk on this" command {flist_gitk}} > } > $flist_menu configure -tearoff 0 > > @@ -3555,6 +3556,17 @@ proc flist_hl {only} { > set gdttype [mc "touching paths:"] > } > > +proc flist_gitk {} { > + global flist_menu_file findstring gdttype > + > + set x [shellquote $flist_menu_file] this needs to handle cdup, i.e., if gitk is run from a subdirectory, all paths needs to be prefixed with $cdup, like: [file join $cdup $flist_menu_file] Bert > + if {[file isdirectory $flist_menu_file]} { > + exec sh -c "cd $x&&gitk" & > + } else { > + exec gitk -- $x & > + } > +} > + > proc gitknewtmpdir {} { > global diffnum gitktmpdir gitdir env >