return this;
}
- protected File discoverGitPrefix() {
+ protected File discoverGitExe() {
return null;
}
return this;
}
- protected File discoverGitPrefix() {
+ protected File discoverGitExe() {
return null;
}
return this;
}
- protected File discoverGitPrefix() {
+ protected File discoverGitExe() {
return null;
}
return this;
}
- protected File discoverGitPrefix() {
+ protected File discoverGitExe() {
return null;
}
return p.value;
}
+ /**
+ * @return the path to the Git executable.
+ * @since 4.0
+ */
+ protected abstract File discoverGitExe();
+
/** @return the $prefix directory C Git would use. */
- protected abstract File discoverGitPrefix();
+ protected File discoverGitPrefix() {
+ return resolveGrandparentFile(discoverGitExe());
+ }
/**
* @param grandchild
}
@Override
- protected File discoverGitPrefix() {
+ protected File discoverGitExe() {
String path = SystemReader.getInstance().getenv("PATH"); //$NON-NLS-1$
File gitExe = searchPath(path, "git"); //$NON-NLS-1$
- if (gitExe != null)
- return resolveGrandparentFile(gitExe);
-
- if (SystemReader.getInstance().isMacOS()) {
- if (searchPath(path, "bash") != null) { //$NON-NLS-1$
- // On MacOSX, PATH is shorter when Eclipse is launched from the
- // Finder than from a terminal. Therefore try to launch bash as a
- // login shell and search using that.
- 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 || w.length() == 0)
- return null;
- gitExe = new File(w);
- return resolveGrandparentFile(gitExe);
+
+ if (gitExe == null) {
+ if (SystemReader.getInstance().isMacOS()) {
+ if (searchPath(path, "bash") != null) { //$NON-NLS-1$
+ // On MacOSX, PATH is shorter when Eclipse is launched from the
+ // Finder than from a terminal. Therefore try to launch bash as a
+ // login shell and search using that.
+ 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 (!StringUtils.isEmptyOrNull(w))
+ gitExe = new File(w);
+ }
}
}
- return null;
+ return gitExe;
}
@Override
}
@Override
- protected File discoverGitPrefix() {
+ protected File discoverGitExe() {
String path = SystemReader.getInstance().getenv("PATH"); //$NON-NLS-1$
File gitExe = searchPath(path, "git.exe", "git.cmd"); //$NON-NLS-1$ //$NON-NLS-2$
- 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 || w.length() == 0)
- return 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 (gitExe == null) {
+ 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 (!StringUtils.isEmptyOrNull(w))
+ // The path may be in cygwin/msys notation so resolve it right away
+ gitExe = resolve(null, w);
+ }
}
- return null;
+ return gitExe;
}
@Override