From b34db87ed9450ecbbcfea33a6e7de512242df929 Mon Sep 17 00:00:00 2001 From: Bas Leijdekkers Date: Thu, 11 Dec 2014 16:23:30 +0100 Subject: [PATCH] =?UTF-8?q?IDEA-124017=20(=E2=80=9Ccore=E2=80=9D=20is=20ig?= =?UTF-8?q?nored=20automatically=20in=20IntelliJ=20VCS)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/CvsEntriesManager.java | 2 +- .../IgnoreFileFilterBasedOnCvsEntriesManager.java | 2 +- .../cvsSupport2/cvsIgnore/IgnoredFilesInfo.java | 15 ++++++++++++++- .../cvsIgnore/IgnoredFilesInfoImpl.java | 14 ++++++++++++++ .../cvsstatuses/CvsChangeProvider.java | 4 ++-- .../ui/experts/importToCvs/ImportTree.java | 6 +++--- 6 files changed, 35 insertions(+), 8 deletions(-) diff --git a/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/application/CvsEntriesManager.java b/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/application/CvsEntriesManager.java index 7c2f593b74e2..d91ed8221714 100644 --- a/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/application/CvsEntriesManager.java +++ b/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/application/CvsEntriesManager.java @@ -337,7 +337,7 @@ public class CvsEntriesManager extends VirtualFileAdapter { return false; } if (CvsUtil.fileIsUnderCvs(file)) return false; - return getFilter(parent).shouldBeIgnored(file.getName()); + return getFilter(parent).shouldBeIgnored(file); } private void ensureFilesCached() { diff --git a/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/cvsIgnore/IgnoreFileFilterBasedOnCvsEntriesManager.java b/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/cvsIgnore/IgnoreFileFilterBasedOnCvsEntriesManager.java index 8132ceed9b50..91fb8cc41a93 100644 --- a/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/cvsIgnore/IgnoreFileFilterBasedOnCvsEntriesManager.java +++ b/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/cvsIgnore/IgnoreFileFilterBasedOnCvsEntriesManager.java @@ -33,6 +33,6 @@ public class IgnoreFileFilterBasedOnCvsEntriesManager implements IIgnoreFileFilt VirtualFile virtualFile = CvsVfsUtil.findFileByIoFile(file); if (virtualFile == null) return false; IgnoredFilesInfo filter = CvsEntriesManager.getInstance().getFilter(virtualFile.getParent()); - return filter.shouldBeIgnored(file.getName()); + return filter.shouldBeIgnored(virtualFile); } } diff --git a/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/cvsIgnore/IgnoredFilesInfo.java b/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/cvsIgnore/IgnoredFilesInfo.java index eb9cace11245..82919745d7d6 100644 --- a/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/cvsIgnore/IgnoredFilesInfo.java +++ b/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/cvsIgnore/IgnoredFilesInfo.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,6 +15,8 @@ */ package com.intellij.cvsSupport2.cvsIgnore; +import com.intellij.openapi.vfs.VirtualFile; + /** * author: lesya */ @@ -24,13 +26,24 @@ public interface IgnoredFilesInfo { public boolean shouldBeIgnored(String fileName) { return false; } + + public boolean shouldBeIgnored(VirtualFile file) { + return false; + } }; IgnoredFilesInfo IGNORE_ALL = new IgnoredFilesInfo() { public boolean shouldBeIgnored(String fileName) { return true; } + + @Override + public boolean shouldBeIgnored(VirtualFile file) { + return true; + } }; boolean shouldBeIgnored(String fileName); + + boolean shouldBeIgnored(VirtualFile file); } diff --git a/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/cvsIgnore/IgnoredFilesInfoImpl.java b/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/cvsIgnore/IgnoredFilesInfoImpl.java index d60d4ebb4d8c..1106f2fa3d84 100644 --- a/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/cvsIgnore/IgnoredFilesInfoImpl.java +++ b/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/cvsIgnore/IgnoredFilesInfoImpl.java @@ -17,6 +17,7 @@ package com.intellij.cvsSupport2.cvsIgnore; import com.intellij.cvsSupport2.application.CvsEntriesManager; import com.intellij.openapi.diagnostic.Logger; +import com.intellij.openapi.vfs.VirtualFile; import org.netbeans.lib.cvsclient.util.SimpleStringPattern; import java.io.*; @@ -72,6 +73,13 @@ public class IgnoredFilesInfoImpl implements IgnoredFilesInfo { if (checkPatterns(PREDEFINED_PATTERNS, fileName)) return true; return false; } + + public boolean shouldBeIgnored(VirtualFile file) { + final String fileName = file.getName(); + if (checkPatterns(CvsEntriesManager.getInstance().getUserDirIgnores().getPatterns(), fileName)) return true; + if (file.isDirectory()) return false; + return checkPatterns(PREDEFINED_PATTERNS, fileName); + } }; private List myPatterns = null; @@ -125,6 +133,12 @@ public class IgnoredFilesInfoImpl implements IgnoredFilesInfo { return checkPatterns(myPatterns, fileName); } + @Override + public boolean shouldBeIgnored(VirtualFile file) { + if (EMPTY_FILTER.shouldBeIgnored(file)) return true; + return checkPatterns(myPatterns, file.getName()); + } + protected static boolean checkPatterns(List patterns, String fileName) { for (int i = 0, patternsSize = patterns.size(); i < patternsSize; i++) { SimpleStringPattern simpleStringPattern = patterns.get(i); diff --git a/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/cvsstatuses/CvsChangeProvider.java b/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/cvsstatuses/CvsChangeProvider.java index d99b1ebf0310..5d59c4e163a8 100644 --- a/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/cvsstatuses/CvsChangeProvider.java +++ b/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/cvsstatuses/CvsChangeProvider.java @@ -278,7 +278,7 @@ public class CvsChangeProvider implements ChangeProvider { } final CvsInfo info = myEntriesManager.getCvsInfoFor(dir); if (info.getRepository() == null) { - if (info.getIgnoreFilter().shouldBeIgnored(dir.getName())) { + if (info.getIgnoreFilter().shouldBeIgnored(dir)) { builder.processIgnoredFile(dir); } else { @@ -492,7 +492,7 @@ public class CvsChangeProvider implements ChangeProvider { } else { if (isInContent(unknown)) { - final boolean isIgnored = result.getCvsInfo().getIgnoreFilter().shouldBeIgnored(unknown.getName()); + final boolean isIgnored = result.getCvsInfo().getIgnoreFilter().shouldBeIgnored(unknown); if (isIgnored) { result.addIgnoredFile(unknown); } diff --git a/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/ui/experts/importToCvs/ImportTree.java b/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/ui/experts/importToCvs/ImportTree.java index eb30dd74752c..12b3a8687c0e 100644 --- a/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/ui/experts/importToCvs/ImportTree.java +++ b/plugins/cvs/cvs-plugin/src/com/intellij/cvsSupport2/ui/experts/importToCvs/ImportTree.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2011 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -237,8 +237,8 @@ public class ImportTree extends NodeRenderer { if (file.isDirectory() && file.getName().equals(CvsUtil.CVS)) return true; if (FileTypeManager.getInstance().isFileIgnored(abstractFileObject.getName())) return true; + final VirtualFile vFile = LocalFileSystem.getInstance().findFileByIoFile(file); if (myProject != null && !includedFiles.contains(file)) { - final VirtualFile vFile = LocalFileSystem.getInstance().findFileByIoFile(file); if (vFile != null && isIgnoredByVcs(vFile)) { return true; } @@ -250,7 +250,7 @@ public class ImportTree extends NodeRenderer { if (!myParentToIgnoresMap.containsKey(parentFile)) { myParentToIgnoresMap.put(parentFile, IgnoredFilesInfoImpl.createForFile(new File(parentFile, CvsUtil.CVS_IGNORE_FILE))); } - return myParentToIgnoresMap.get(parentFile).shouldBeIgnored(file.getName()); + return myParentToIgnoresMap.get(parentFile).shouldBeIgnored(vFile); } }; }