.gitk should created hidden in windows
Hi Paul, i write this to the git mailing list because of the advice from
Johannes Schindelin in the MSysGit Issue:
http://code.google.com/p/msysgit/issues/detail?id=143
The problem is that windows dose not hides files beginning with a dot as it is in unix. So the .gitk file is created as visible in the windows user profile. Problematic too is that i can no set the hidden attribute to this file, because it is recreated every time i start gitk, so the hidden attribute gets lost.
Can you control this and create the file with the hidden attribute on windows?
Steve
Quoted 8 lines · Steve Wagner
The problem is that windows dose not hides files beginning with a dot as it is in unix. So the .gitk file is created as visible in the windows user profile. Problematic too is that i can no set the hidden attribute to this file, because it is recreated every time i start gitk, so the hidden attribute gets lost.
Can you control this and create the file with the hidden attribute on windows?
Please try this patch and let me know if it does what you want.
Paul.
gitk +3 -0
@@ -2487,6 +2487,9 @@ proc savestuff {w} { if {![winfo viewable .]} return catch { set f [open "~/.gitk-new" w] + if {$::tcl_platform(platform) eq {windows}} { + file attributes "~/.gitk-new" -hidden true + } puts $f [list set mainfont $mainfont] puts $f [list set textfont $textfont] puts $f [list set uifont $uifont]
2009/3/23 Paul Mackerras <[email protected]>:
Quoted 21 lines
Quoted 8 lines · Steve Wagner
The problem is that windows dose not hides files beginning with a dot as it is in unix. So the .gitk file is created as visible in the windows user profile. Problematic too is that i can no set the hidden attribute to this file, because it is recreated every time i start gitk, so the hidden attribute gets lost.
Can you control this and create the file with the hidden attribute on windows?
Please try this patch and let me know if it does what you want.
Paul.
gitk +0
-0@@ -2487,6 +2487,9 @@ proc savestuff {w} {if {![winfo viewable .]} return
Quoted 8 lines
catch {
set f [open "~/.gitk-new" w]
+ if {$::tcl_platform(platform) eq {windows}} {
+ file attributes "~/.gitk-new" -hidden true
+ }
puts $f [list set mainfont $mainfont] puts $f [list set textfont $textfont] puts $f [list set uifont $uifont]
How about making all files beginning with . hidden? .gitignore for example
Hi,
Quoted 2 lines · John Tapsell
How about making all files beginning with . hidden? .gitignore for example
Uhm.
Did you miss that this patch was about gitk, not git.git?
Ciao,
Dscho
Seems to work here. Thanks for fixing it!
Steve
Quoted 30 lines · Paul Mackerras
Quoted 8 lines · Steve Wagner
The problem is that windows dose not hides files beginning with a dot as it is in unix. So the .gitk file is created as visible in the windows user profile. Problematic too is that i can no set the hidden attribute to this file, because it is recreated every time i start gitk, so the hidden attribute gets lost.
Can you control this and create the file with the hidden attribute on windows?
Please try this patch and let me know if it does what you want.
Paul.
gitk +3
-0@@ -2487,6 +2487,9 @@ proc savestuff {w} { if {![winfo viewable .]} return catch { set f [open "~/.gitk-new" w] + if {$::tcl_platform(platform) eq {windows}} { + file attributes "~/.gitk-new" -hidden true + } puts $f [list set mainfont $mainfont] puts $f [list set textfont $textfont] puts $f [list set uifont $uifont]
Quoted 2 lines · Paul Mackerras
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.
gitk +15 -5
@@ -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
Hi,
Quoted 5 lines · Pat Thoyts
Quoted 2 lines · Paul Mackerras
Please try this patch and let me know if it does what you want.
[snip]
Quoted 8 lines
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.
While I see your point, keep in mind that this patch would make Git for Windows even more incompatible with Git "In The Rest Of The World"...
Ciao,
Dscho
Quoted 4 lines · Pat Thoyts
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.
Sounds OK, but wouldn't we want to ignore ~/.gitk if there is a gitk.settings in application data directory?
Paul.