Browse Source

FS_Win32: Avoid an IOException on Windows if bash is not in PATH

Change-Id: I3145f74ecee9f5b368e7f4b9fd7cb906f407eff5
Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
stable-4.1
Sebastian Schuberth 10 years ago committed by Matthias Sohn
parent
commit
ec6ec3b10f
  1. 24
      org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32.java

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

@ -111,18 +111,20 @@ public class FS_Win32 extends FS {
if (gitExe != null)
return resolveGrandparentFile(gitExe);
// This isn't likely to work, if bash is in $PATH, git should
// also be in $PATH. But its worth trying.
//
String w = readPipe(userHome(), //
new String[] { "bash", "--login", "-c", "which git" }, // //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
Charset.defaultCharset().name());
if (w != null) {
// The path may be in cygwin/msys notation so resolve it right away
gitExe = resolve(null, w);
if (gitExe != null)
return resolveGrandparentFile(gitExe);
if (searchPath(path, "bash.exe") != null) { //$NON-NLS-1$
// This isn't likely to work, but its worth trying:
// If bash is in $PATH, git should also be in $PATH.
String w = readPipe(userHome(),
new String[] { "bash", "--login", "-c", "which git" }, // //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
Charset.defaultCharset().name());
if (w != null) {
// The path may be in cygwin/msys notation so resolve it right away
gitExe = resolve(null, w);
if (gitExe != null)
return resolveGrandparentFile(gitExe);
}
}
return null;
}

Loading…
Cancel
Save