Mercurial > hg-stable
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