Mercurial: Add cache for branch query

Change-Id: Ied6f2008324b80b9d4869ba17d67e6d55a91d08c
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
This commit is contained in:
Orgad Shaneh
2014-02-18 20:50:41 +02:00
committed by Orgad Shaneh
parent cd48c5e513
commit d9bfc67d1f
4 changed files with 32 additions and 12 deletions

View File

@@ -39,6 +39,7 @@
#include <utils/fileutils.h>
#include <utils/qtcassert.h>
#include <QDateTime>
#include <QDir>
#include <QFileInfo>
#include <QTextCodec>
@@ -155,10 +156,12 @@ bool MercurialClient::synchronousPull(const QString &workingDir, const QString &
QString MercurialClient::branchQuerySync(const QString &repositoryRoot)
{
QByteArray output;
if (vcsFullySynchronousExec(repositoryRoot, QStringList(QLatin1String("branch")), &output))
return QTextCodec::codecForLocale()->toUnicode(output).trimmed();
QFile branchFile(repositoryRoot + QLatin1String("/.hg/branch"));
if (branchFile.open(QFile::ReadOnly)) {
const QByteArray branch = branchFile.readAll().trimmed();
if (!branch.isEmpty())
return QString::fromLocal8Bit(branch);
}
return QLatin1String("Unknown Branch");
}