diff --git a/plugins/svn4idea/src/META-INF/plugin.xml b/plugins/svn4idea/src/META-INF/plugin.xml index 77468ba6dfa8..03dbc2dc867a 100644 --- a/plugins/svn4idea/src/META-INF/plugin.xml +++ b/plugins/svn4idea/src/META-INF/plugin.xml @@ -142,6 +142,9 @@ + + + diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/statistics/SvnWorkingCopyFormatUsagesCollector.kt b/plugins/svn4idea/src/org/jetbrains/idea/svn/statistics/SvnWorkingCopyFormatUsagesCollector.kt new file mode 100644 index 000000000000..9aea465a867c --- /dev/null +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/statistics/SvnWorkingCopyFormatUsagesCollector.kt @@ -0,0 +1,22 @@ +// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +package org.jetbrains.idea.svn.statistics + +import com.intellij.internal.statistic.beans.UsageDescriptor +import com.intellij.internal.statistic.service.fus.collectors.ProjectUsagesCollector +import com.intellij.openapi.project.Project +import org.jetbrains.idea.svn.NestedCopyType +import org.jetbrains.idea.svn.SvnVcs + +class SvnWorkingCopyFormatUsagesCollector : ProjectUsagesCollector() { + override fun getGroupId() = "statistics.vcs.svn.format" + + override fun getUsages(project: Project): Set { + val vcs = SvnVcs.getInstance(project) + + // do not track roots with errors (SvnFileUrlMapping.getErrorRoots()) as they are "not usable" until errors are resolved + // skip externals and switched directories as they will have the same format + val roots = vcs.svnFileUrlMapping.allWcInfos.filter { it.type == null || it.type == NestedCopyType.inner } + + return roots.groupingBy { it.format }.eachCount().map { UsageDescriptor(it.key.toString(), it.value) }.toSet() + } +}