summaryrefslogtreecommitdiff
path: root/src/plugins/git/gitclient.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/git/gitclient.cpp')
-rw-r--r--src/plugins/git/gitclient.cpp24
1 files changed, 20 insertions, 4 deletions
diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp
index b1fc13a214..dcd85653d8 100644
--- a/src/plugins/git/gitclient.cpp
+++ b/src/plugins/git/gitclient.cpp
@@ -1800,6 +1800,22 @@ void GitClient::synchronousTagsForCommit(const QString &workingDirectory, const
}
}
+QStringList GitClient::synchronousBranchesForCommit(const QString &workingDirectory, const QString &revision)
+{
+ QString output;
+ QStringList arguments;
+ arguments << QLatin1String(noColorOption) << QLatin1String("-a")
+ << QLatin1String("--contains") << revision;
+ synchronousBranchCmd(workingDirectory, arguments, &output, 0);
+ QStringList res;
+ foreach (const QString &branch, output.split(QLatin1Char('\n'))) {
+ const QString b = branch.mid(2).trimmed();
+ if (!b.isEmpty())
+ res << b;
+ }
+ return res;
+}
+
bool GitClient::isRemoteCommit(const QString &workingDirectory, const QString &commit)
{
QStringList arguments;
@@ -1958,11 +1974,11 @@ bool GitClient::synchronousBranchCmd(const QString &workingDirectory, QStringLis
QByteArray errorText;
const bool rc = fullySynchronousGit(workingDirectory, branchArgs, &outputText, &errorText);
*output = commandOutputFromLocal8Bit(outputText);
- if (!rc) {
- *errorMessage = msgCannotRun(QLatin1String("git branch"), workingDirectory, commandOutputFromLocal8Bit(errorText));
- return false;
+ if (!rc && errorMessage) {
+ *errorMessage = msgCannotRun(QLatin1String("git branch"), workingDirectory,
+ commandOutputFromLocal8Bit(errorText));
}
- return true;
+ return rc;
}
bool GitClient::synchronousTagCmd(const QString &workingDirectory, QStringList tagArgs, QString *output, QString *errorMessage)