summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Schuberth <sschuberth@gmail.com>2015-05-19 09:30:02 +0200
committerMatthias Sohn <matthias.sohn@sap.com>2015-05-21 23:29:28 +0200
commit8025443db4234bbf095e593434693141863753f8 (patch)
treee6336f291d1c0e153710eb9a029962b5175105e0
parent686124bec32fcdee1545e7d9c312dcf0276b44af (diff)
downloadjgit-8025443db4234bbf095e593434693141863753f8.tar.gz
jgit-8025443db4234bbf095e593434693141863753f8.zip
Move resolveGrandparentFile() to the base class for wider use
Change-Id: I67ec732ea2e5345a6946783f0c5ef60c07ce254e Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java15
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/util/FS_POSIX.java7
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32.java9
3 files changed, 17 insertions, 14 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java
index d11b03e679..762b36ecb9 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java
@@ -508,6 +508,21 @@ public abstract class FS {
protected abstract File discoverGitPrefix();
/**
+ * @param grandchild
+ * @return the parent directory of this file's parent directory or
+ * {@code null} in case there's no grandparent directory
+ * @since 4.0
+ */
+ protected static File resolveGrandparentFile(File grandchild) {
+ if (grandchild != null) {
+ File parent = grandchild.getParentFile();
+ if (parent != null)
+ return parent.getParentFile();
+ }
+ return null;
+ }
+
+ /**
* Set the $prefix directory C Git uses.
*
* @param path
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_POSIX.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_POSIX.java
index 9c92d7c4cd..667b969796 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_POSIX.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_POSIX.java
@@ -138,7 +138,7 @@ public class FS_POSIX extends FS {
String path = SystemReader.getInstance().getenv("PATH"); //$NON-NLS-1$
File gitExe = searchPath(path, "git"); //$NON-NLS-1$
if (gitExe != null)
- return gitExe.getParentFile().getParentFile();
+ return resolveGrandparentFile(gitExe);
if (SystemReader.getInstance().isMacOS()) {
// On MacOSX, PATH is shorter when Eclipse is launched from the
@@ -150,10 +150,7 @@ public class FS_POSIX extends FS {
Charset.defaultCharset().name());
if (w == null || w.length() == 0)
return null;
- File parentFile = new File(w).getParentFile();
- if (parentFile == null)
- return null;
- return parentFile.getParentFile();
+ return resolveGrandparentFile(new File(w));
}
return null;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32.java
index 41e8113a48..6e0c5e85fb 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32.java
@@ -128,15 +128,6 @@ public class FS_Win32 extends FS {
return null;
}
- private static File resolveGrandparentFile(File grandchild) {
- if (grandchild != null) {
- File parent = grandchild.getParentFile();
- if (parent != null)
- return parent.getParentFile();
- }
- return null;
- }
-
@Override
protected File userHomeImpl() {
String home = SystemReader.getInstance().getenv("HOME"); //$NON-NLS-1$