This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

View | Details | Raw Unified | Return to bug 268813
Collapse All | Expand All

(-)a/git.remote/src/org/netbeans/modules/git/remote/Git.java (-1 / +1 lines)
Lines 371-377 Link Here
371
                break;
371
                break;
372
            }
372
            }
373
            // is the folder a special one where metadata should not be looked for?
373
            // is the folder a special one where metadata should not be looked for?
374
            boolean forbiddenFolder = Utils.isForbiddenFolder(file.getPath());
374
            boolean forbiddenFolder = org.netbeans.modules.versioning.core.util.Utils.isForbiddenFolder(file);
375
            if (!forbiddenFolder && GitUtils.repositoryExistsFor(file)) {
375
            if (!forbiddenFolder && GitUtils.repositoryExistsFor(file)) {
376
                if (LOG.isLoggable(Level.FINE)) {
376
                if (LOG.isLoggable(Level.FINE)) {
377
                    LOG.log(Level.FINE, " found managed parent {0}", new Object[] { file });
377
                    LOG.log(Level.FINE, " found managed parent {0}", new Object[] { file });
(-)a/git/src/org/netbeans/modules/git/Git.java (-1 / +1 lines)
Lines 331-337 Link Here
331
            }
331
            }
332
            if (!noExceptions && VersioningSupport.isExcluded(file)) break;
332
            if (!noExceptions && VersioningSupport.isExcluded(file)) break;
333
            // is the folder a special one where metadata should not be looked for?
333
            // is the folder a special one where metadata should not be looked for?
334
            boolean forbiddenFolder = Utils.isForbiddenFolder(file.getAbsolutePath());
334
            boolean forbiddenFolder = Utils.isForbiddenFolder(file);
335
            if (!forbiddenFolder && GitUtils.repositoryExistsFor(file)) {
335
            if (!forbiddenFolder && GitUtils.repositoryExistsFor(file)) {
336
                LOG.log(Level.FINE, " found managed parent {0}", new Object[] { file });
336
                LOG.log(Level.FINE, " found managed parent {0}", new Object[] { file });
337
                done.clear();   // all folders added before must be removed, they ARE in fact managed by git
337
                done.clear();   // all folders added before must be removed, they ARE in fact managed by git
(-)a/mercurial.remote/src/org/netbeans/modules/mercurial/remote/Mercurial.java (-1 / +1 lines)
Lines 599-605 Link Here
599
                break;
599
                break;
600
            }
600
            }
601
            // is the folder a special one where metadata should not be looked for?
601
            // is the folder a special one where metadata should not be looked for?
602
            boolean forbiddenFolder = Utils.isForbiddenFolder(file.getPath());
602
            boolean forbiddenFolder = org.netbeans.modules.versioning.core.util.Utils.isForbiddenFolder(file);
603
            if (!forbiddenFolder && HgUtils.hgExistsFor(file)){
603
            if (!forbiddenFolder && HgUtils.hgExistsFor(file)){
604
                if (Mercurial.LOG.isLoggable(Level.FINE)) {
604
                if (Mercurial.LOG.isLoggable(Level.FINE)) {
605
                    Mercurial.LOG.log(Level.FINE, " found managed parent {0}", new Object[] { file });
605
                    Mercurial.LOG.log(Level.FINE, " found managed parent {0}", new Object[] { file });
(-)a/mercurial/src/org/netbeans/modules/mercurial/Mercurial.java (-1 / +1 lines)
Lines 569-575 Link Here
569
            }
569
            }
570
            if (VersioningSupport.isExcluded(file)) break;
570
            if (VersioningSupport.isExcluded(file)) break;
571
            // is the folder a special one where metadata should not be looked for?
571
            // is the folder a special one where metadata should not be looked for?
572
            boolean forbiddenFolder = Utils.isForbiddenFolder(file.getAbsolutePath());
572
            boolean forbiddenFolder = Utils.isForbiddenFolder(file);
573
            if (!forbiddenFolder && HgUtils.hgExistsFor(file)){
573
            if (!forbiddenFolder && HgUtils.hgExistsFor(file)){
574
                if (Mercurial.LOG.isLoggable(Level.FINE)) {
574
                if (Mercurial.LOG.isLoggable(Level.FINE)) {
575
                    Mercurial.LOG.log(Level.FINE, " found managed parent {0}", new Object[] { file });
575
                    Mercurial.LOG.log(Level.FINE, " found managed parent {0}", new Object[] { file });
(-)a/subversion/src/org/netbeans/modules/subversion/Subversion.java (-1 / +1 lines)
Lines 528-534 Link Here
528
            }
528
            }
529
            if (org.netbeans.modules.versioning.util.Utils.isScanForbidden(file)) break;
529
            if (org.netbeans.modules.versioning.util.Utils.isScanForbidden(file)) break;
530
            // is the folder a special one where metadata should not be looked for?
530
            // is the folder a special one where metadata should not be looked for?
531
            boolean forbiddenFolder = org.netbeans.modules.versioning.util.Utils.isForbiddenFolder(file.getAbsolutePath());
531
            boolean forbiddenFolder = org.netbeans.modules.versioning.util.Utils.isForbiddenFolder(file);
532
            if (!forbiddenFolder && SvnUtils.hasMetadata(file)) {
532
            if (!forbiddenFolder && SvnUtils.hasMetadata(file)) {
533
                if (Subversion.LOG.isLoggable(Level.FINE)) {
533
                if (Subversion.LOG.isLoggable(Level.FINE)) {
534
                    Subversion.LOG.log(Level.FINE, " found managed parent {0}", new Object[] { file });
534
                    Subversion.LOG.log(Level.FINE, " found managed parent {0}", new Object[] { file });
(-)a/versioning.system.cvss/src/org/netbeans/modules/versioning/system/cvss/CvsVersioningSystem.java (-1 / +1 lines)
Lines 463-469 Link Here
463
            }
463
            }
464
            if (org.netbeans.modules.versioning.util.Utils.isScanForbidden(file)) break;
464
            if (org.netbeans.modules.versioning.util.Utils.isScanForbidden(file)) break;
465
            // is the folder a special one where metadata should not be looked for?
465
            // is the folder a special one where metadata should not be looked for?
466
            boolean forbiddenFolder = org.netbeans.modules.versioning.util.Utils.isForbiddenFolder(file.getAbsolutePath());
466
            boolean forbiddenFolder = org.netbeans.modules.versioning.util.Utils.isForbiddenFolder(file);
467
            if (!forbiddenFolder && Utils.containsMetadata(file)) {
467
            if (!forbiddenFolder && Utils.containsMetadata(file)) {
468
                LOG.log(Level.FINE, " found managed parent {0}", new Object[] { file });
468
                LOG.log(Level.FINE, " found managed parent {0}", new Object[] { file });
469
                topmost = file;
469
                topmost = file;
(-)a/versioning.util/src/org/netbeans/modules/versioning/util/Utils.java (+22 lines)
Lines 91-96 Link Here
91
import org.netbeans.api.project.Sources;
91
import org.netbeans.api.project.Sources;
92
import org.netbeans.api.queries.FileEncodingQuery;
92
import org.netbeans.api.queries.FileEncodingQuery;
93
import org.netbeans.api.queries.VersioningQuery;
93
import org.netbeans.api.queries.VersioningQuery;
94
import org.netbeans.modules.versioning.core.api.VCSFileProxy;
94
import org.netbeans.modules.versioning.spi.VersioningSystem;
95
import org.netbeans.modules.versioning.spi.VersioningSystem;
95
import org.openide.ErrorManager;
96
import org.openide.ErrorManager;
96
import org.openide.awt.AcceleratorBinding;
97
import org.openide.awt.AcceleratorBinding;
Lines 298-308 Link Here
298
     * @return <code>true</code> if the folder identified by the given path
299
     * @return <code>true</code> if the folder identified by the given path
299
     * should be skipped when searching for metadata.
300
     * should be skipped when searching for metadata.
300
     * @since 1.54
301
     * @since 1.54
302
     * @deprecated  use org.netbeans.modules.versioning.core.Utils.isForbiddenFolder()
301
     */
303
     */
302
    public static boolean isForbiddenFolder (String folderPath) {
304
    public static boolean isForbiddenFolder (String folderPath) {
303
        return forbiddenFolders.contains(folderPath);
305
        return forbiddenFolders.contains(folderPath);
304
    }
306
    }
305
307
308
    /**
309
     * Some folders are special and versioning should not look for metadata in
310
     * them. Folders like /net with automount enabled may take a long time to
311
     * answer I/O on their children, so
312
     * <code>VCSFileProxy.exists("/net/.git")</code> will freeze until it
313
     * timeouts. You should call this method before asking any I/O on children
314
     * of this folder you are unsure to actually exist. This does not mean
315
     * however that whole subtree should be excluded from version control, only
316
     * that you should not look for the metadata directly in this folder.
317
     * Returns <code>true</code> if the given folder is among such folders.
318
     *
319
     * @param folderPath path to a folder to query
320
     * @return <code>true</code> if the folder identified by the given path
321
     * should be skipped when searching for metadata.
322
     * @since 1.54
323
     */
324
    public static boolean isForbiddenFolder (File folder) {
325
        return org.netbeans.modules.versioning.core.Utils.isForbiddenFolder(VCSFileProxy.createFileProxy(folder));
326
    }
327
306
    private static DataObject findDataObject(File file) {
328
    private static DataObject findDataObject(File file) {
307
        FileObject fo = FileUtil.toFileObject(file);
329
        FileObject fo = FileUtil.toFileObject(file);
308
        if (fo != null) {
330
        if (fo != null) {

Return to bug 268813