Allow detection of case insensitive file systems

Change-Id: I03f59d07bcc3338ef8d392cbd940799186ca03bd
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
Signed-off-by: Christian Halstrick <christian.halstrick@sap.com>
This commit is contained in:
Matthias Sohn 2012-05-18 16:52:50 +02:00 committed by Robin Rosenberg
parent 803debd7be
commit e9c811d0d0
5 changed files with 41 additions and 0 deletions

View File

@ -631,6 +631,11 @@ protected File discoverGitPrefix() {
public boolean canExecute(File f) {
return true;
}
@Override
public boolean isCaseSensitive() {
return false;
}
};
Git git = Git.open(db.getDirectory(), executableFs);
@ -671,6 +676,11 @@ protected File discoverGitPrefix() {
public boolean canExecute(File f) {
return false;
}
@Override
public boolean isCaseSensitive() {
return false;
}
};
config = db.getConfig();

View File

@ -109,6 +109,11 @@ protected File discoverGitPrefix() {
public boolean canExecute(File f) {
return true;
}
@Override
public boolean isCaseSensitive() {
return true;
}
};
Git git = Git.open(db.getDirectory(), executableFs);
@ -149,6 +154,11 @@ protected File discoverGitPrefix() {
public boolean canExecute(File f) {
return false;
}
@Override
public boolean isCaseSensitive() {
return true;
}
};
config = db.getConfig();

View File

@ -135,6 +135,13 @@ protected FS(FS src) {
*/
public abstract boolean supportsExecute();
/**
* Is this file system case sensitive
*
* @return true if this implementation is case sensitive
*/
public abstract boolean isCaseSensitive();
/**
* Determine if the file is executable (or not).
* <p>

View File

@ -85,6 +85,14 @@ protected File discoverGitPrefix() {
super(src);
}
@Override
public boolean isCaseSensitive() {
if (isMacOS())
return false;
else
return true;
}
@Override
public ProcessBuilder runInShell(String cmd, String[] args) {
List<String> argv = new ArrayList<String>(4 + args.length);

View File

@ -53,6 +53,7 @@
import java.util.List;
class FS_Win32 extends FS {
static boolean isWin32() {
final String osDotName = AccessController
.doPrivileged(new PrivilegedAction<String>() {
@ -88,6 +89,11 @@ public boolean setExecute(final File f, final boolean canExec) {
return false;
}
@Override
public boolean isCaseSensitive() {
return false;
}
@Override
public boolean retryFailedLockFileCommit() {
return true;