From ca6f37f3bde21cd5b5061fb969eb468bd6315ddb Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Tue, 25 Oct 2016 14:00:18 +0200 Subject: [PATCH] SVN: Fix topic Use svnversion in favor of svn info to report the topic for SVN versions. Task-number: QTCREATORBUG-13611 Change-Id: Ia1f61c0d3b9bfb871d42449478029835c7b2796f Reviewed-by: Orgad Shaneh --- src/plugins/subversion/subversionclient.cpp | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/plugins/subversion/subversionclient.cpp b/src/plugins/subversion/subversionclient.cpp index 93b4dcf5f40..f263669eb29 100644 --- a/src/plugins/subversion/subversionclient.cpp +++ b/src/plugins/subversion/subversionclient.cpp @@ -39,6 +39,8 @@ #include #include +#include + #include #include #include @@ -136,19 +138,20 @@ QStringList SubversionClient::addAuthenticationOptions(const VcsBaseClientSettin QString SubversionClient::synchronousTopic(const QString &repository) { QStringList args; - args << QLatin1String("info"); - const SynchronousProcessResponse result = vcsFullySynchronousExec(repository, args); + QString svnVersionBinary = vcsBinary().toString(); + int pos = svnVersionBinary.lastIndexOf('/'); + if (pos < 0) + svnVersionBinary.clear(); + else + svnVersionBinary = svnVersionBinary.left(pos + 1); + svnVersionBinary.append(HostOsInfo::withExecutableSuffix("svnversion")); + const SynchronousProcessResponse result + = vcsFullySynchronousExec(repository, FileName::fromString(svnVersionBinary), args); if (result.result != SynchronousProcessResponse::Finished) return QString(); - const QString revisionString = QLatin1String("Revision: "); - // stdOut is ASCII only (at least in those areas we care about). - foreach (const QString &line, result.stdOut().split(QLatin1Char('\n'))) { - if (line.startsWith(revisionString)) - return QString::fromLatin1("r") + line.mid(revisionString.count()); - } - return QString(); + return result.stdOut().trimmed(); } class DiffController : public DiffEditorController