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.
--- 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