]> source.dussan.org Git - jgit.git/commit
FS_POSIX: Rework umask detection to make it settable 87/47587/3
authorShawn Pearce <spearce@spearce.org>
Sun, 10 May 2015 19:19:12 +0000 (12:19 -0700)
committerShawn Pearce <spearce@spearce.org>
Sun, 10 May 2015 19:36:18 +0000 (12:36 -0700)
commitbfdd9630833a32856fc3b5396b17406192ea7634
tree106ed5b94838ca4314452330180d3adcd7884725
parent4ac7cf003b802b66d085451a5b3dc4912c56e230
FS_POSIX: Rework umask detection to make it settable

Avoid always calling `sh -c umask` on startup, instead deferring
the invocation until the first time a working tree file needs to
use the execute bit. This allows servers using bare repos to avoid
a costly fork+exec for a value that is never used.

Store the umask as an int instead of two Boolean. This is slightly
smaller memory (one int vs. two references) and makes it easier for
an application to force setting the umask to a value that overrides
whatever the shell told JGit.

Simplify the code to bail by returning early when canExecute is
false, which is the common case for working tree files.

Change-Id: Ie713647615bc5bdf5d71b731a6748c28ea21c900
org.eclipse.jgit.test/tst/org/eclipse/jgit/util/FSJava7Test.java
org.eclipse.jgit/src/org/eclipse/jgit/util/FS_POSIX.java