OSDN Git Service

Git: Fix thinko when trying to find merged branches
authorTobias Hunger <tobias.hunger@nokia.com>
Tue, 26 Jul 2011 13:13:04 +0000 (13:13 +0000)
committerRobert Löhning <robert.loehning@nokia.com>
Tue, 26 Jul 2011 15:15:09 +0000 (17:15 +0200)
Fix thinko when trying to find out whether a branch was merged or not.

Change-Id: I6c4d600508af8a68fe0bac7e61f0b912c43cec32
Reviewed-on: http://codereview.qt.nokia.com/2200
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Robert Löhning <robert.loehning@nokia.com>
src/plugins/git/branchmodel.cpp

index 428ddf3..5d1712a 100644 (file)
@@ -470,15 +470,18 @@ bool BranchModel::branchIsMerged(const QModelIndex &idx)
     QString output;
     QStringList args;
 
-    args << QLatin1String("--contains") << sha(idx);
+    args << QLatin1String("-a") << QLatin1String("--contains") << sha(idx);
     if (!m_client->synchronousBranchCmd(m_workingDirectory, args, &output, &errorMessage)) {
         VCSBase::VCSBaseOutputWindow::instance()->appendError(errorMessage);
         return false;
     }
 
-    QStringList lines = output.split(QLatin1Char('/'), QString::SkipEmptyParts);
+    QStringList lines = output.split(QLatin1Char('\n'), QString::SkipEmptyParts);
     foreach (const QString &l, lines) {
-        if (l.startsWith(QLatin1String("  ")) && l.count() >= 3)
+        QString currentBranch = l.mid(2); // remove first letters (those are either
+                                          // "  " or "* " depending on whether it is
+                                          // the currently checked out branch or not)
+        if (currentBranch != branch)
             return true;
     }
     return false;