forked from qt-creator/qt-creator
Git: Cache findGitDirForRepository results
Change-Id: Ia22ec20d3934dbdfa42461f66230b62bf6c1df07 Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
This commit is contained in:
committed by
Tobias Hunger
parent
1712b86e0e
commit
f782f9b901
@@ -68,6 +68,7 @@
|
||||
#include <QTime>
|
||||
#include <QFileInfo>
|
||||
#include <QDir>
|
||||
#include <QHash>
|
||||
#include <QSignalMapper>
|
||||
|
||||
#include <QComboBox>
|
||||
@@ -392,11 +393,15 @@ QString GitClient::findRepositoryForDirectory(const QString &dir)
|
||||
|
||||
QString GitClient::findGitDirForRepository(const QString &repositoryDir)
|
||||
{
|
||||
static QHash<QString, QString> repoDirCache;
|
||||
QString &res = repoDirCache[repositoryDir];
|
||||
if (!res.isEmpty())
|
||||
return res;
|
||||
QByteArray outputText;
|
||||
QStringList arguments;
|
||||
arguments << QLatin1String("rev-parse") << QLatin1String("--git-dir");
|
||||
fullySynchronousGit(repositoryDir, arguments, &outputText, 0, false);
|
||||
QString res = QString::fromLocal8Bit(outputText.trimmed());
|
||||
res = QString::fromLocal8Bit(outputText.trimmed());
|
||||
if (!QDir(res).isAbsolute())
|
||||
res.prepend(repositoryDir + QLatin1Char('/'));
|
||||
return res;
|
||||
|
||||
Reference in New Issue
Block a user