On Tue, May 8, 2018 at 2:22 PM, Alex Riesen
<[email protected]> wrote:
> From: Alex Riesen <[email protected]>
>
> 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 <[email protected]>
> ---
> 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
>