diff --git a/platform/dvcs-impl/src/com/intellij/dvcs/ignore/IgnoredToExcludedSynchronizer.kt b/platform/dvcs-impl/src/com/intellij/dvcs/ignore/IgnoredToExcludedSynchronizer.kt index e5b36949da5f..2deb80a50211 100644 --- a/platform/dvcs-impl/src/com/intellij/dvcs/ignore/IgnoredToExcludedSynchronizer.kt +++ b/platform/dvcs-impl/src/com/intellij/dvcs/ignore/IgnoredToExcludedSynchronizer.kt @@ -77,6 +77,8 @@ class IgnoredToExcludedSynchronizer(project: Project, parentDisposable: Disposab } override fun doActionOnChosenFiles(files: Collection) { + if (files.isEmpty()) return + markIgnoredAsExcluded(files) } @@ -93,7 +95,6 @@ class IgnoredToExcludedSynchronizer(project: Project, parentDisposable: Disposab override fun updateFinished(ignoredPaths: Collection, isFullRescan: Boolean) { ProgressManager.checkCanceled() if (!isFullRescan) return - if (!Registry.`is`("vcs.propose.add.ignored.directories.to.exclude", true)) return if (!VcsConfiguration.getInstance(project).MARK_IGNORED_AS_EXCLUDED && wasAskedBefore()) return processIgnored(ignoredPaths) @@ -113,7 +114,13 @@ class IgnoredToExcludedSynchronizer(project: Project, parentDisposable: Disposab //do not propose to exclude if there is a source root inside .filterNot { ignored -> sourceRoots.contains(ignored) } .toList() - processFiles(ignoredDirs) + + if (allowShowNotification()) { + processFiles(ignoredDirs) + } + else if (needDoForCurrentProject()) { + doActionOnChosenFiles(doFilterFiles(ignoredDirs)) + } } private fun markIgnoredAsExcluded(files: Collection) { @@ -129,6 +136,8 @@ class IgnoredToExcludedSynchronizer(project: Project, parentDisposable: Disposab } } + private fun allowShowNotification() = Registry.`is`("vcs.propose.add.ignored.directories.to.exclude", true) + private fun getProjectSourceRoots() = runReadAction { OrderEnumerator.orderEntries(project).withoutSdk().withoutLibraries().sources().usingCache().roots } diff --git a/platform/util/resources/misc/registry.properties b/platform/util/resources/misc/registry.properties index b0b814643541..9fd3818a7542 100644 --- a/platform/util/resources/misc/registry.properties +++ b/platform/util/resources/misc/registry.properties @@ -529,7 +529,7 @@ vcs.code.analysis.before.checkin.show.only.new.threshold.description=Show only n vcs.process.externally.added.files=true vcs.process.externally.added.files.description=Process externally added files. Add such files to VCS automatically or prompt user. -vcs.propose.add.ignored.directories.to.exclude=true +vcs.propose.add.ignored.directories.to.exclude=false vcs.propose.add.ignored.directories.to.exclude.description=Show notification with proposal to add ignored (but not excluded) directories to exclude. psi.incremental.reparse.depth.limit=1000 diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/IgnoredSettingsPanel.kt b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/IgnoredSettingsPanel.kt index b7cbd875f4bc..fb41c46df5a7 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/IgnoredSettingsPanel.kt +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/IgnoredSettingsPanel.kt @@ -6,7 +6,6 @@ import com.intellij.ide.util.PropertiesComponent import com.intellij.openapi.options.BoundConfigurable import com.intellij.openapi.options.SearchableConfigurable import com.intellij.openapi.project.Project -import com.intellij.openapi.util.registry.Registry import com.intellij.openapi.vcs.VcsApplicationSettings import com.intellij.openapi.vcs.VcsBundle.message import com.intellij.openapi.vcs.VcsConfiguration @@ -56,7 +55,7 @@ internal class IgnoredSettingsPanel(private val project: Project) : BoundConfigu } row { checkBox(message("ignored.file.ignored.to.excluded.label"), projectSettings::MARK_IGNORED_AS_EXCLUDED) - }.visible = Registry.`is`("vcs.propose.add.ignored.directories.to.exclude", true) + } } }