Commit caf2ca0a authored by Orgad Shaneh's avatar Orgad Shaneh Committed by Orgad Shaneh

VCS: Chop trailing slash for cache

When the directory is root (on both Windows and Linux), it ends with a slash,
and yet it is valid (although unlikely to be managed by VCS).

Chop the slash to avoid soft assertions.

Change-Id: I0f206b5a7ee70e9c641ff872fa21662f9d92aab2
Reviewed-by: default avatarTobias Hunger <>
parent 181f62c8
......@@ -223,13 +223,20 @@ IVersionControl *VcsManager::versionControl(Id id)
return Utils::findOrDefault(versionControls(), Utils::equal(&Core::IVersionControl::id, id));
static QString absoluteWithNoTrailingSlash(const QString &directory)
QString res = QDir(directory).absolutePath();
if (res.endsWith(QLatin1Char('/')))
return res;
void VcsManager::resetVersionControlForDirectory(const QString &inputDirectory)
if (inputDirectory.isEmpty())
const QString directory = QDir(inputDirectory).absolutePath();
const QString directory = absoluteWithNoTrailingSlash(inputDirectory);
emit m_instance->repositoryChanged(directory);
......@@ -246,7 +253,7 @@ IVersionControl* VcsManager::findVersionControlForDirectory(const QString &input
// Make sure we an absolute path:
QString directory = QDir(inputDirectory).absolutePath();
QString directory = absoluteWithNoTrailingSlash(inputDirectory);
if (directory[0].isLetter() && directory.indexOf(QLatin1Char(':') + QLatin1String(TEST_PREFIX)) == 1)
directory = directory.mid(2);
......@@ -284,7 +291,7 @@ IVersionControl* VcsManager::findVersionControlForDirectory(const QString &input
// Register Vcs(s) with the cache
QString tmpDir = QFileInfo(directory).canonicalFilePath();
QString tmpDir = absoluteWithNoTrailingSlash(directory);
#if defined WITH_TESTS
// Force caching of test directories (even though they do not exist):
if (directory.startsWith(QLatin1String(TEST_PREFIX)))
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment