summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Aguilar <davvid@gmail.com>2014-06-13 14:13:37 -0700
committerPaul Mackerras <paulus@samba.org>2014-06-15 11:35:50 +1000
commitc7664f1a8c6d40acf8221ba620a3193dec411f8c (patch)
tree081a5426d39ec6de2a0239b92034ec52daa4d712
parent17f9836c8afc8d4b6d6bb91fd0658df090d75c8f (diff)
downloadgit-c7664f1a8c6d40acf8221ba620a3193dec411f8c.tar.gz
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 <davvid@gmail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
-rwxr-xr-xgitk11
1 files 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