]> source.dussan.org Git - jgit.git/commitdiff
FS_Win32: Avoid an IOException on Windows if bash is not in PATH 25/47025/3
authorSebastian Schuberth <sschuberth@gmail.com>
Mon, 4 May 2015 09:45:22 +0000 (11:45 +0200)
committerMatthias Sohn <matthias.sohn@sap.com>
Thu, 7 May 2015 08:54:43 +0000 (10:54 +0200)
Change-Id: I3145f74ecee9f5b368e7f4b9fd7cb906f407eff5
Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32.java

index 6f553ccfa6467cc2e843332ae26dca9268f94106..41e8113a48e1fca336cc13e3c7d5be720eddb983 100644 (file)
@@ -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;
        }