Merge "Fix broken git prefix detection"

This commit is contained in:
Shawn Pearce 2011-04-01 15:05:34 -04:00 committed by Code Review
commit bc42a780eb
2 changed files with 15 additions and 4 deletions

View File

@ -286,7 +286,9 @@ protected static String readPipe(File dir, String[] command, String encoding) {
}
}
} catch (IOException e) {
// ignore
if (SystemReader.getInstance().getProperty("jgit.fs.debug") != null)
System.err.println(e);
// Ignore error (but report)
}
return null;
}
@ -295,7 +297,12 @@ protected static String readPipe(File dir, String[] command, String encoding) {
public File gitPrefix() {
Holder<File> p = gitPrefix;
if (p == null) {
p = new Holder<File>(discoverGitPrefix());
String overrideGitPrefix = SystemReader.getInstance().getProperty(
"jgit.gitprefix");
if (overrideGitPrefix != null)
p = new Holder<File>(new File(overrideGitPrefix));
else
p = new Holder<File>(discoverGitPrefix());
gitPrefix = p;
}
return p.value;

View File

@ -106,8 +106,12 @@ protected File discoverGitPrefix() {
String w = readPipe(userHome(), //
new String[] { "bash", "--login", "-c", "which git" }, //
Charset.defaultCharset().name());
if (w != null)
return new File(w).getParentFile().getParentFile();
if (w != null) {
// The path may be in cygwin/msys notation so resolve it right away
gitExe = resolve(null, w);
if (gitExe != null)
return gitExe.getParentFile().getParentFile();
}
return null;
}