gitk: Put temporary directory inside .git
When running "External diff" from gitk, the "from" and "to" files will first be copied into a directory that is currently ".git/../.gitk-tmp.$pid". When gitk is closed, the directory is deleted. When the work tree is not at ".git/.." (which is supported since the previous commit), that directory may not even be git-related and it does not seem unlikely that permissions may not allow the temporary directory to be created there. Move the directory inside .git instead. This introduces a regression in the case that the .git directory is readonly, but .git/.. is writeable. Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
Martin von Zweigbergk committed
Apr 4, 2011 at 22:14 UTC
929f577e0a648dd1c90b92d8a3f6f1899f2fa0e2
1 file changed
+1
-2
gitk
+1
-2
@@ -3331,8 +3331,7 @@ proc gitknewtmpdir {} {
3331
global diffnum gitktmpdir gitdir
3332
3333
if {![info exists gitktmpdir]} {
3334
- set gitktmpdir [file join [file dirname $gitdir] \
3335
- [format ".gitk-tmp.%s" [pid]]]
3334
+ set gitktmpdir [file join $gitdir [format ".gitk-tmp.%s" [pid]]]
3335
if {[catch {file mkdir $gitktmpdir} err]} {
3336
error_popup "[mc "Error creating temporary directory %s:" $gitktmpdir] $err"
3337
unset gitktmpdir