Browse Source

Fix broken git prefix detection

If JGit got a cygwin path it would fail to resolve directories
relative to it.

Also add system property to debug problems with the FS utilities.
Enable debug using -Djgit.fs.debug=1

Furthermore use -Djgit.gitprefix=<path> to set the git prefix
manually.

Change-Id: I5a58ee45c2d2ae5322f87fd6972526169b2918c8
Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
stable-0.12
Robin Rosenberg 14 years ago
parent
commit
76d25273cc
  1. 11
      org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java
  2. 8
      org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32.java

11
org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java

@ -286,7 +286,9 @@ public abstract class FS {
} }
} }
} catch (IOException e) { } catch (IOException e) {
// ignore if (SystemReader.getInstance().getProperty("jgit.fs.debug") != null)
System.err.println(e);
// Ignore error (but report)
} }
return null; return null;
} }
@ -295,7 +297,12 @@ public abstract class FS {
public File gitPrefix() { public File gitPrefix() {
Holder<File> p = gitPrefix; Holder<File> p = gitPrefix;
if (p == null) { 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; gitPrefix = p;
} }
return p.value; return p.value;

8
org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32.java

@ -106,8 +106,12 @@ class FS_Win32 extends FS {
String w = readPipe(userHome(), // String w = readPipe(userHome(), //
new String[] { "bash", "--login", "-c", "which git" }, // new String[] { "bash", "--login", "-c", "which git" }, //
Charset.defaultCharset().name()); Charset.defaultCharset().name());
if (w != null) if (w != null) {
return new File(w).getParentFile().getParentFile(); // 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; return null;
} }

Loading…
Cancel
Save