# [PATCH] gitk: honor TMPDIR when viewing external diffs

2 messages from 2014-06-13 to 2014-06-15. Participants: David Aguilar, Paul Mackerras.
Thread: https://gitlist.dev/t/36912

## David Aguilar, 2014-06-13 21:13

Subject: [PATCH] gitk: honor TMPDIR when viewing external diffs
Message-ID: <1402694017-91249-1-git-send-email-davvid@gmail.com>
URL: https://gitlist.dev/e/1402694017-91249-1-git-send-email-davvid%40gmail.com

```
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>
---
 gitk | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/gitk b/gitk
index 90764e8..82293dd 100755
--- a/gitk
+++ b/gitk
@@ -3492,10 +3492,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.0.0.257.g75cc6c6

```

## Paul Mackerras, 2014-06-15 04:57

Subject: Re: [PATCH] gitk: honor TMPDIR when viewing external diffs
Message-ID: <20140615045734.GE21978@iris.ozlabs.ibm.com>
URL: https://gitlist.dev/e/20140615045734.GE21978%40iris.ozlabs.ibm.com
In-Reply-To: <1402694017-91249-1-git-send-email-davvid@gmail.com>

```
On Fri, Jun 13, 2014 at 02:13:37PM -0700, David Aguilar wrote:
> 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>

Thanks, applied.

Paul.

```
