Mercurial > hg
changeset 7006:92d44ec32430
branch: added more support for named branches
hg branch now has a -C (--clean) option, to reset the current (dirstate)
branch to the branch of the last commit (first parent).
author | Sune Foldager <cryo@cyanite.org> |
---|---|
date | Mon, 08 Sep 2008 12:55:27 +0200 |
parents | 7739b61897df |
children | a6b74fbb5ce0 |
files | mercurial/commands.py tests/test-branches tests/test-branches.out |
diffstat | 3 files changed, 40 insertions(+), 21 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/commands.py Mon Sep 08 11:32:53 2008 +0200 +++ b/mercurial/commands.py Mon Sep 08 12:55:27 2008 +0200 @@ -373,10 +373,17 @@ Unless --force is specified, branch will not let you set a branch name that shadows an existing branch. + Use --clean to reset the working directory branch to that of the + parent of the working directory, negating a previous branch change. + Use the command 'hg update' to switch to an existing branch. """ - if label: + if opts.get('clean'): + label = repo[None].parents()[0].branch() + repo.dirstate.setbranch(label) + ui.status(_('reset working directory to branch %s\n') % label) + elif label: if not opts.get('force') and label in repo.branchtags(): if label not in [p.branch() for p in repo.parents()]: raise util.Abort(_('a branch of the same name already exists' @@ -2987,8 +2994,9 @@ "branch": (branch, [('f', 'force', None, - _('set branch name even if it shadows an existing branch'))], - _('hg branch [-f] [NAME]')), + _('set branch name even if it shadows an existing branch')), + ('C', 'clean', None, _('reset branch name to parent branch name'))], + _('hg branch [-fC] [NAME]')), "branches": (branches, [('a', 'active', False,
--- a/tests/test-branches Mon Sep 08 11:32:53 2008 +0200 +++ b/tests/test-branches Mon Sep 08 12:55:27 2008 +0200 @@ -11,6 +11,11 @@ hg branch a hg commit -d '1 0' -u test -m "Adding a branch" +hg branch q +echo 'aa' >a +hg branch -C +hg commit -d '2 0' -u test -m "Adding to a branch" + hg update -C 0 echo 'b' >b hg add b
--- a/tests/test-branches.out Mon Sep 08 11:32:53 2008 +0200 +++ b/tests/test-branches.out Mon Sep 08 12:55:27 2008 +0200 @@ -1,21 +1,34 @@ marked working directory as branch a +marked working directory as branch q +reset working directory to branch a 0 files updated, 0 files merged, 1 files removed, 0 files unresolved marked working directory as branch b created new head -0 files updated, 0 files merged, 1 files removed, 0 files unresolved -created new head +1 files updated, 0 files merged, 2 files removed, 0 files unresolved marked working directory as branch c marked working directory as branch a branch name much longer than the default justification used by branches -a branch name much longer than the default justification used by branches 6:b8cb5af34c4d -b 4:22df7444f7c1 -a 1:dd6b440dd85a -c 5:5ca481e59b8c (inactive) +a branch name much longer than the default justification used by branches 7:10ff5895aa57 +b 4:aee39cd168d0 +c 6:589736a22561 (inactive) +a 5:d8cbc61dbaa6 (inactive) default 0:19709c5a4e75 (inactive) ------- -a branch name much longer than the default justification used by branches 6:b8cb5af34c4d -b 4:22df7444f7c1 -a 1:dd6b440dd85a +a branch name much longer than the default justification used by branches 7:10ff5895aa57 +b 4:aee39cd168d0 --- Branch a +changeset: 5:d8cbc61dbaa6 +branch: a +parent: 2:881fe2b92ad0 +user: test +date: Thu Jan 01 00:00:04 1970 +0000 +summary: Adding b branch head 2 + +changeset: 2:881fe2b92ad0 +branch: a +user: test +date: Thu Jan 01 00:00:02 1970 +0000 +summary: Adding to a branch + changeset: 1:dd6b440dd85a branch: a user: test @@ -23,20 +36,13 @@ summary: Adding a branch ---- Branch b -changeset: 4:22df7444f7c1 -branch: b -parent: 2:ac22033332d1 -user: test -date: Thu Jan 01 00:00:04 1970 +0000 -summary: Adding b branch head 2 - -changeset: 3:aee39cd168d0 +changeset: 4:aee39cd168d0 branch: b user: test date: Thu Jan 01 00:00:03 1970 +0000 summary: Adding b branch head 1 -changeset: 2:ac22033332d1 +changeset: 3:ac22033332d1 branch: b parent: 0:19709c5a4e75 user: test