- LYXERR(Debug::LYXVC, "LyXVC: registering "
- << to_utf8(filename.displayName()) << " with RCS");
- vcs.reset(new RCS(FileName(), owner_));
+ found = VCS::checkParentDirs(filename, ".svn/entries");
+ if (!found.empty()) {
+ LYXERR(Debug::LYXVC, "LyXVC: registering "
+ << to_utf8(filename.displayName()) << " with SVN");
+ vcs_.reset(new SVN(owner_));
+
+ } else {
+ // We only need to check the current directory, since CVS meta-data
+ // is in every sub-directory.
+ FileName const cvs_entries(onlyPath(filename.absFileName()) + "/CVS/Entries");
+ if (cvs_entries.isReadableFile()) {
+ LYXERR(Debug::LYXVC, "LyXVC: registering "
+ << to_utf8(filename.displayName()) << " with CVS");
+ vcs_.reset(new CVS(cvs_entries, owner_));
+
+ } else {
+ // If all else fails, use RCS
+ LYXERR(Debug::LYXVC, "LyXVC: registering "
+ << to_utf8(filename.displayName()) << " with RCS");
+ vcs_.reset(new RCS(FileName(), owner_));
+ }
+ }