Browse Source

Split discoverGitPrefix() code out into discoverGitExe()

Change-Id: I700540eec06efb24eeb09bfcb40420820c32d156
Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
tags/v4.0.0.201505260635-rc2
Sebastian Schuberth 9 years ago
parent
commit
6fdd214349

+ 2
- 2
org.eclipse.jgit.test/tst/org/eclipse/jgit/api/AddCommandTest.java View File

@@ -624,7 +624,7 @@ public class AddCommandTest extends RepositoryTestCase {
return this;
}

protected File discoverGitPrefix() {
protected File discoverGitExe() {
return null;
}

@@ -669,7 +669,7 @@ public class AddCommandTest extends RepositoryTestCase {
return this;
}

protected File discoverGitPrefix() {
protected File discoverGitExe() {
return null;
}


+ 2
- 2
org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CommitCommandTest.java View File

@@ -108,7 +108,7 @@ public class CommitCommandTest extends RepositoryTestCase {
return this;
}

protected File discoverGitPrefix() {
protected File discoverGitExe() {
return null;
}

@@ -153,7 +153,7 @@ public class CommitCommandTest extends RepositoryTestCase {
return this;
}

protected File discoverGitPrefix() {
protected File discoverGitExe() {
return null;
}


+ 9
- 1
org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java View File

@@ -504,8 +504,16 @@ public abstract class FS {
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

+ 15
- 17
org.eclipse.jgit/src/org/eclipse/jgit/util/FS_POSIX.java View File

@@ -134,28 +134,26 @@ public class FS_POSIX extends FS {
}

@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

+ 14
- 17
org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32.java View File

@@ -105,27 +105,24 @@ public class FS_Win32 extends FS {
}

@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

Loading…
Cancel
Save