# HG changeset patch # User liscju # Date 2016-04-05 04:53:33 # Node ID e1dd0de26557d9f36dbd82943a5f5ffd0167a833 # Parent eb017d52899daab87d7403bba28c2ad58309b863 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. diff --git a/mercurial/destutil.py b/mercurial/destutil.py --- a/mercurial/destutil.py +++ b/mercurial/destutil.py @@ -102,11 +102,7 @@ def _destupdatebranch(repo, clean, check 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): diff --git a/tests/test-newbranch.t b/tests/test-newbranch.t --- a/tests/test-newbranch.t +++ b/tests/test-newbranch.t @@ -211,8 +211,7 @@ Update with no arguments: tipmost revisi 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 @@ 2 branch heads, implicit merge works: (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