From 6c77fb98ffdd4776f26cbee6ead45be64431e1a0 Mon Sep 17 00:00:00 2001 From: Nadya Zabrodina Date: Mon, 19 Jun 2017 17:01:58 +0300 Subject: [PATCH] [hg]: allow to switch off hg ignored files processing * IDEA-174155 - add registry key to avoid hg status --ignored command for a large number of files; --- .../util/resources/misc/registry.properties | 2 +- .../provider/HgLocalIgnoredHolder.java | 33 ++++++++++--------- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/platform/util/resources/misc/registry.properties b/platform/util/resources/misc/registry.properties index c461b7a41623..21487dc79741 100644 --- a/platform/util/resources/misc/registry.properties +++ b/platform/util/resources/misc/registry.properties @@ -883,7 +883,7 @@ git.diff.renameLimit.infinity.description=Sets diff.renameLimit configuration va If option is set to false, diff.renameLimit is taken from Git configuration (it is usually not zero by default).\ Switching this option off may prevent Git from detecting renames in large commits in the file history. -hg4idea.process.ignored=false +hg4idea.process.ignored=true hg4idea.process.ignored.description=Process and highlight mercurial ignored files. \ Switching on this option may lead to some performance problems. diff --git a/plugins/hg4idea/src/org/zmlx/hg4idea/provider/HgLocalIgnoredHolder.java b/plugins/hg4idea/src/org/zmlx/hg4idea/provider/HgLocalIgnoredHolder.java index c776c7756a38..dccd428f9e24 100644 --- a/plugins/hg4idea/src/org/zmlx/hg4idea/provider/HgLocalIgnoredHolder.java +++ b/plugins/hg4idea/src/org/zmlx/hg4idea/provider/HgLocalIgnoredHolder.java @@ -18,6 +18,7 @@ package org.zmlx.hg4idea.provider; import com.intellij.dvcs.repo.AsyncFilesManagerListener; import com.intellij.openapi.Disposable; import com.intellij.openapi.diagnostic.Logger; +import com.intellij.openapi.util.registry.Registry; import com.intellij.openapi.vcs.FilePath; import com.intellij.openapi.vcs.VcsException; import com.intellij.openapi.vfs.VirtualFile; @@ -59,22 +60,24 @@ public class HgLocalIgnoredHolder implements Disposable { } public void startRescan() { - myUpdateQueue.queue(new Update("hgRescanIgnored") { - @Override - public boolean canEat(Update update) { - return true; - } - - @Override - public void run() { - if (myInUpdateMode.compareAndSet(false, true)) { - fireUpdateStarted(); - rescanAllIgnored(); - myInUpdateMode.set(false); - fireUpdateFinished(); + if (Registry.is("hg4idea.process.ignored")) { + myUpdateQueue.queue(new Update("hgRescanIgnored") { + @Override + public boolean canEat(Update update) { + return true; } - } - }); + + @Override + public void run() { + if (myInUpdateMode.compareAndSet(false, true)) { + fireUpdateStarted(); + rescanAllIgnored(); + myInUpdateMode.set(false); + fireUpdateFinished(); + } + } + }); + } } private void fireUpdateStarted() {