Skip to content

Commit

Permalink
gitk: Put temporary directory inside .git
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Martin von Zweigbergk authored and Paul Mackerras committed Jul 24, 2011
1 parent 784b7e2 commit 929f577
Showing 1 changed file with 1 addition and 2 deletions.
3 changes: 1 addition & 2 deletions gitk
Original file line number Diff line number Diff line change
Expand Up @@ -3331,8 +3331,7 @@ proc gitknewtmpdir {} {
global diffnum gitktmpdir gitdir

if {![info exists gitktmpdir]} {
set gitktmpdir [file join [file dirname $gitdir] \
[format ".gitk-tmp.%s" [pid]]]
set gitktmpdir [file join $gitdir [format ".gitk-tmp.%s" [pid]]]
if {[catch {file mkdir $gitktmpdir} err]} {
error_popup "[mc "Error creating temporary directory %s:" $gitktmpdir] $err"
unset gitktmpdir
Expand Down

0 comments on commit 929f577

Please sign in to comment.