changeset 28903:e1dd0de26557

update: fix bare update to work on new branch So far bare update on new branch results in 'abort: branch new-branch not found'. This commit fixes this by updating to the parent of wctx. The effect of updating to the parent of wctx is to move to the paren't branch - this means that it is no longer necessary to prevent you from updating if you would lose your newly created branch.
author liscju <piotr.listkiewicz@gmail.com>
date Tue, 05 Apr 2016 06:53:33 +0200
parents eb017d52899d
children 80be5dbe6e74
files mercurial/destutil.py tests/test-newbranch.t
diffstat 2 files changed, 49 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/destutil.py	Wed Apr 13 09:56:51 2016 +0200
+++ b/mercurial/destutil.py	Tue Apr 05 06:53:33 2016 +0200
@@ -102,11 +102,7 @@
         if bookmarks.isactivewdirparent(repo):
             movemark = repo['.'].node()
     else:
-        if currentbranch == 'default': # no default branch!
-            # update to the tipmost non-closed branch head
-            node = repo.revs('max(head() and not closed())').first()
-        else:
-            raise error.Abort(_("branch %s not found") % currentbranch)
+        node = repo['.'].node()
     return node, movemark, None
 
 def _destupdatebranchfallback(repo, clean, check):
--- a/tests/test-newbranch.t	Wed Apr 13 09:56:51 2016 +0200
+++ b/tests/test-newbranch.t	Tue Apr 05 06:53:33 2016 +0200
@@ -211,8 +211,7 @@
   marked working directory as branch foobar
 
   $ hg up
-  abort: branch foobar not found
-  [255]
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 Fast-forward merge:
 
@@ -345,3 +344,50 @@
   (branch merge, don't forget to commit)
 
   $ cd ..
+
+We expect that bare update on new branch, updates to parent
+
+  $ hg init bareupdateonnewbranch
+  $ cd bareupdateonnewbranch
+  $ hg update
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ touch a
+  $ hg commit -A -m "a"
+  adding a
+  $ touch b
+  $ hg commit -A -m "b"
+  adding b
+  $ touch c
+  $ hg commit -A -m "c"
+  adding c
+  $ hg update -r 1
+  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+  $ hg log -G
+  o  changeset:   2:991a3460af53
+  |  tag:         tip
+  |  user:        test
+  |  date:        Thu Jan 01 00:00:00 1970 +0000
+  |  summary:     c
+  |
+  @  changeset:   1:0e067c57feba
+  |  user:        test
+  |  date:        Thu Jan 01 00:00:00 1970 +0000
+  |  summary:     b
+  |
+  o  changeset:   0:3903775176ed
+     user:        test
+     date:        Thu Jan 01 00:00:00 1970 +0000
+     summary:     a
+  
+  $ hg branch dev
+  marked working directory as branch dev
+  (branches are permanent and global, did you want a bookmark?)
+  $ hg update
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ hg summary
+  parent: 1:0e067c57feba 
+   b
+  branch: dev
+  commit: (new branch)
+  update: (current)
+  phases: 3 draft