diff options
-rw-r--r-- | org.eclipse.egit.core/src/org/eclipse/egit/core/project/RepositoryFinder.java | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/org.eclipse.egit.core/src/org/eclipse/egit/core/project/RepositoryFinder.java b/org.eclipse.egit.core/src/org/eclipse/egit/core/project/RepositoryFinder.java index aa2ecf9ece..7dc550f82c 100644 --- a/org.eclipse.egit.core/src/org/eclipse/egit/core/project/RepositoryFinder.java +++ b/org.eclipse.egit.core/src/org/eclipse/egit/core/project/RepositoryFinder.java @@ -3,6 +3,7 @@ * Copyright (C) 2007, Shawn O. Pearce <spearce@spearce.org> * Copyright (C) 2008, Google Inc. * Copyright (C) 2012, François Rey <eclipse.org_@_francois_._rey_._name> + * Copyright (C) 2013, Carsten Pfeiffer <carsten.pfeiffer@gebit.de> * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 @@ -29,6 +30,8 @@ import org.eclipse.core.runtime.SubProgressMonitor; import org.eclipse.egit.core.internal.CoreText; import org.eclipse.egit.core.internal.trace.GitTraceLocation; import org.eclipse.jgit.lib.Constants; +import org.eclipse.jgit.lib.RepositoryCache.FileKey; +import org.eclipse.jgit.util.FS; import org.eclipse.jgit.util.SystemReader; /** @@ -128,8 +131,10 @@ public class RepositoryFinder { assert fsLoc.isAbsolute(); final File ownCfg = configFor(fsLoc); final IResource[] children; + final FS fs = FS.detect(); - if (ownCfg.isFile()) { + if (ownCfg.isFile() + && FileKey.isGitRepository(ownCfg.getParentFile(), fs)) { register(c, ownCfg.getParentFile()); } if (c instanceof IProject) { @@ -142,7 +147,9 @@ public class RepositoryFinder { "Looking at candidate dir: " //$NON-NLS-1$ + p); final File pCfg = configFor(p); - if (pCfg.isFile()) { + if (pCfg.isFile() + && FileKey.isGitRepository( + pCfg.getParentFile(), fs)) { register(c, pCfg.getParentFile()); } if (ceilingDirectories.contains(p.getPath())) |