changeset 235:2f4d401ce47c

* Better handling for case where we've just created a new branch but not yet committed it (i.e. no heads are on our current branch)
author Chris Cannam
date Fri, 07 Jan 2011 21:58:38 +0000
parents 482802b6d306
children 960b782f0a64
files mainwindow.cpp
diffstat 1 files changed, 10 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/mainwindow.cpp	Thu Jan 06 16:06:53 2011 +0000
+++ b/mainwindow.cpp	Fri Jan 07 21:58:38 2011 +0000
@@ -2037,6 +2037,7 @@
     bool haveMerge = false;
     bool emptyRepo = false;
     bool noWorkingCopy = false;
+    bool newBranch = false;
     int currentBranchHeads = 0;
 
     if (currentParents.size() == 1) {
@@ -2046,14 +2047,18 @@
             DEBUG << "head branch " << head->branch() << ", current branch " << currentBranch << endl;
             if (head->isOnBranch(currentBranch)) {
                 ++currentBranchHeads;
-                if (parent->id() == head->id()) {
-                    parentIsHead = true;
-                }
+            }
+            if (parent->id() == head->id()) {
+                parentIsHead = true;
             }
         }
         if (currentBranchHeads == 2 && parentIsHead) {
             canMerge = true;
         }
+        if (currentBranchHeads == 0 && parentIsHead) {
+            // Just created a new branch
+            newBranch = true;
+        }
         if (!parentIsHead) {
             canUpdate = true;
             DEBUG << "parent id = " << parent->id() << endl;
@@ -2104,6 +2109,8 @@
         hgTabs->setState(tr("Have unresolved files following merge on %1").arg(branchText));
     } else if (haveMerge) {
         hgTabs->setState(tr("Have merged but not yet committed on %1").arg(branchText));
+    } else if (newBranch) {
+        hgTabs->setState(tr("On %1.  New branch: has not yet been committed").arg(branchText));
     } else if (canUpdate) {
         if (hgTabs->haveChangesToCommit()) {
             // have uncommitted changes