diff options
Diffstat (limited to 'org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/synchronize/model/GitModelObject.java')
-rw-r--r-- | org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/synchronize/model/GitModelObject.java | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/synchronize/model/GitModelObject.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/synchronize/model/GitModelObject.java index dc688e0e72..21cdb18c38 100644 --- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/synchronize/model/GitModelObject.java +++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/synchronize/model/GitModelObject.java @@ -9,14 +9,19 @@ package org.eclipse.egit.ui.internal.synchronize.model; import java.io.IOException; +import java.util.ArrayList; +import java.util.List; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.PlatformObject; import org.eclipse.egit.core.synchronize.dto.GitSynchronizeData; import org.eclipse.jgit.errors.MissingObjectException; +import org.eclipse.jgit.lib.ObjectId; import org.eclipse.jgit.lib.Repository; +import org.eclipse.jgit.treewalk.FileTreeIterator; import org.eclipse.jgit.treewalk.TreeWalk; +import org.eclipse.jgit.treewalk.filter.NotIgnoredFilter; import org.eclipse.jgit.treewalk.filter.TreeFilter; /** @@ -110,4 +115,28 @@ public abstract class GitModelObject extends PlatformObject { return tw; } + /** + * Return list of not ignored children in root node. + * + * @param root + * @return list of not ignored nodes + * @throws IOException + */ + protected List<String> getNotIgnoredNodes(ObjectId root) throws IOException { + Repository repo = getRepository(); + List<String> resutl = new ArrayList<String>(); + + TreeWalk tw = new TreeWalk(repo); + tw.reset(); + tw.addTree(root); + + int ignoreNth = tw.addTree(new FileTreeIterator(repo)); + tw.setFilter(new NotIgnoredFilter(ignoreNth)); + + while (tw.next()) + resutl.add(tw.getNameString()); + + return resutl; + } + } |