]> source.dussan.org Git - jgit.git/commitdiff
Move resolveGrandparentFile() to the base class for wider use 40/48140/3
authorSebastian Schuberth <sschuberth@gmail.com>
Tue, 19 May 2015 07:30:02 +0000 (09:30 +0200)
committerMatthias Sohn <matthias.sohn@sap.com>
Thu, 21 May 2015 21:29:28 +0000 (23:29 +0200)
Change-Id: I67ec732ea2e5345a6946783f0c5ef60c07ce254e
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.java
org.eclipse.jgit/src/org/eclipse/jgit/util/FS_POSIX.java
org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32.java

index d11b03e679e6abf791778ff62094ca8209b5c5f7..762b36ecb929087eb51a0349d3730ff0a9500a2a 100644 (file)
@@ -507,6 +507,21 @@ public abstract class FS {
        /** @return the $prefix directory C Git would use. */
        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.
         *
index 9c92d7c4cd1f690d1c36a959b36faa4e782c6e6c..667b969796d377980a4bdb2c36d822995a397976 100644 (file)
@@ -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;
index 41e8113a48e1fca336cc13e3c7d5be720eddb983..6e0c5e85fb176b341f4362f2f5d68782ec421c59 100644 (file)
@@ -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$