Currently, the VCS detection code seems to check for VCSes in a lexical order, checking the full directory tree backwards for each of them. I think it would be better to either: a) switch the loops -- i.e. check all VCSes for each dir, not all dirs for a VCS, b) at least move CVS/svn checks elsewhere as they duplicate their directories in each repo dir. This is a case e.g. whenever a subversion repositories is checked out within a larger git repo [1]. [1] https://github.com/mgorny/sunrise-commit/issues#issue/4
subversion no longer uses the per directory .svn, it leaves only CVS and I'm not sure if it's worth to change.