From 85ef2954a22a65a65c948b77aaa61c799c86e48d Mon Sep 17 00:00:00 2001 From: Friedemann Kleint <Friedemann.Kleint@nokia.com> Date: Tue, 26 May 2009 12:25:32 +0200 Subject: [PATCH] Enable usage of "_svn" as internal directory name for TortoiseSVN. Option for TortoiseSVN to avoid hassle with other IDEs. --- src/plugins/subversion/subversionplugin.cpp | 22 ++++++++++++++++++--- src/plugins/subversion/subversionplugin.h | 2 +- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/plugins/subversion/subversionplugin.cpp b/src/plugins/subversion/subversionplugin.cpp index de1e01d26fb..2cb82e13f89 100644 --- a/src/plugins/subversion/subversionplugin.cpp +++ b/src/plugins/subversion/subversionplugin.cpp @@ -164,11 +164,22 @@ StatusList parseStatusOutput(const QString &output) return changeSet; } +// Return a list of names for the internal svn directories +static inline QStringList svnDirectories() +{ + QStringList rc(QLatin1String(".svn")); +#ifdef Q_OS_WIN + // Option on Windows systems to avoid hassle with some IDEs + rc.push_back(QLatin1String("_svn")); +#endif + return rc; +} + // ------------- SubversionPlugin SubversionPlugin *SubversionPlugin::m_subversionPluginInstance = 0; SubversionPlugin::SubversionPlugin() : - m_svnDotDirectory(QLatin1String(".svn")), + m_svnDirectories(svnDirectories()), m_versionControl(0), m_coreListener(0), m_settingsPage(0), @@ -1100,8 +1111,13 @@ bool SubversionPlugin::managesDirectory(const QString &directory) const bool SubversionPlugin::managesDirectory(const QDir &directory) const { - const QString svnDir = directory.absoluteFilePath(m_svnDotDirectory); - return QFileInfo(svnDir).isDir(); + const int dirCount = m_svnDirectories.size(); + for (int i = 0; i < dirCount; i++) { + const QString svnDir = directory.absoluteFilePath(m_svnDirectories.at(i)); + if (QFileInfo(svnDir).isDir()) + return true; + } + return false; } QString SubversionPlugin::findTopLevelForDirectory(const QString &directory) const diff --git a/src/plugins/subversion/subversionplugin.h b/src/plugins/subversion/subversionplugin.h index 071b2f9f852..fbc14ff0a25 100644 --- a/src/plugins/subversion/subversionplugin.h +++ b/src/plugins/subversion/subversionplugin.h @@ -140,7 +140,7 @@ private: bool commit(const QString &messageFile, const QStringList &subVersionFileList); void cleanChangeTmpFile(); - const QString m_svnDotDirectory; + const QStringList m_svnDirectories; SubversionSettings m_settings; Core::IVersionControl *m_versionControl; -- GitLab