From c7664f1a8c6d40acf8221ba620a3193dec411f8c Mon Sep 17 00:00:00 2001 From: David Aguilar Date: Fri, 13 Jun 2014 14:13:37 -0700 Subject: [PATCH] gitk: Honor TMPDIR when viewing external diffs gitk fails to show diffs when browsing a read-only repository. This is due to gitk's assumption that the current directory is always writable. Teach gitk to honor either the GITK_TMPDIR or TMPDIR environment variables. This allows users to override the default location used when writing temporary files. Signed-off-by: David Aguilar Signed-off-by: Paul Mackerras --- gitk | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/gitk b/gitk index 68a61dd7eb..c666435204 100755 --- a/gitk +++ b/gitk @@ -3493,10 +3493,17 @@ proc flist_hl {only} { } proc gitknewtmpdir {} { - global diffnum gitktmpdir gitdir + global diffnum gitktmpdir gitdir env if {![info exists gitktmpdir]} { - set gitktmpdir [file join $gitdir [format ".gitk-tmp.%s" [pid]]] + if {[info exists env(GITK_TMPDIR)]} { + set tmpdir $env(GITK_TMPDIR) + } elseif {[info exists env(TMPDIR)]} { + set tmpdir $env(TMPDIR) + } else { + set tmpdir $gitdir + } + set gitktmpdir [file join $tmpdir [format ".gitk-tmp.%s" [pid]]] if {[catch {file mkdir $gitktmpdir} err]} { error_popup "[mc "Error creating temporary directory %s:" $gitktmpdir] $err" unset gitktmpdir -- 2.49.0