Re: .gitk should created hidden in windows
> Please try this patch and let me know if it does what you want.
>
[snip]
This patch works fine on my Vista installation. The .gitk file is now hidden.
An alternative that was discussed was to move it rather than hide it so that it ends up in the Application Data folder along with settings for other applications. The following patch does this but hits rather more lines of code and ends up needing to check the original location as well.
diff --git a/gitk b/gitk
index a7294a1..5ec6e7b 100755
--- a/gitk
+++ b/gitk
@@ -2509,12 +2509,13 @@ proc savestuff {w} {
global viewname viewfiles viewargs viewargscmd viewperm nextviewnum
global cmitmode wrapcomment datetimeformat limitdiffs
global colors bgcolor fgcolor diffcolors diffcontext selectbgcolor
- global autoselect extdifftool perfile_attrs markbgcolor
+ global autoselect extdifftool perfile_attrs markbgcolor rcfile
if {$stuffsaved} return
if {![winfo viewable .]} return
- catch {
- set f [open "~/.gitk-new" w]
+ set tmpfile "${rcfile}-new"
+ if {[catch {
+ set f [open $tmpfile {CREAT WRONLY}]
puts $f [list set mainfont $mainfont]
puts $f [list set textfont $textfont]
puts $f [list set uifont $uifont]
@@ -2555,7 +2556,10 @@ proc savestuff {w} {
}
puts $f "}"
close $f
- file rename -force "~/.gitk-new" "~/.gitk"
+ file rename -force $tmpfile $rcfile
+ } err]} {
+ tk_messageBox -icon error -message $err \
+ -title "Failed to save preferences"
}
set stuffsaved 1
}
@@ -10790,7 +10794,13 @@ namespace import ::msgcat::mc
## And eventually load the actual message catalog
::msgcat::mcload $gitk_msgsdir
-catch {source ~/.gitk}
+set rcfile ~/.gitk
+if {$::tcl_platform(platform) eq "windows"} {
+ # Load old settings file if present
+ if {[file exists ~/.gitk]} {catch {source ~/.gitk}}
+ set rcfile [file join $env(APPDATA) gitk.settings]
+}
+catch {source $rcfile}
font create optionfont -family sans-serif -size -12