Mercurial > hg > mercurial-crew
changeset 14897:b9daa5b7a3af stable
rebase: block collapse with keepbranches on multiple named branches (issue2112)
Collapse and keepbranches should be blocked when there is more than
one named branch on the branch that's going to be rebased.
author | Stefano Tortarolo <stefano.tortarolo@gmail.com> |
---|---|
date | Mon, 18 Jul 2011 22:58:21 +0200 |
parents | d2d592718e90 |
children | 95ced9f5bf29 |
files | hgext/rebase.py tests/test-rebase-collapse.t |
diffstat | 2 files changed, 46 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/rebase.py +++ b/hgext/rebase.py @@ -175,6 +175,14 @@ assert not extrafn, 'cannot use both keepbranches and extrafn' def extrafn(ctx, extra): extra['branch'] = ctx.branch() + if collapsef: + branches = set() + for rev in state: + branches.add(repo[rev].branch()) + if len(branches) > 1: + raise util.Abort(_('cannot collapse multiple named ' + 'branches')) + # Rebase if not targetancestors:
--- a/tests/test-rebase-collapse.t +++ b/tests/test-rebase-collapse.t @@ -442,3 +442,41 @@ D F +Interactions between collapse and keepbranches + $ cd .. + $ hg init e + $ cd e + $ echo 'a' > a + $ hg ci -Am 'A' + adding a + + $ hg branch '1' + marked working directory as branch 1 + $ echo 'b' > b + $ hg ci -Am 'B' + adding b + + $ hg branch '2' + marked working directory as branch 2 + $ echo 'c' > c + $ hg ci -Am 'C' + adding c + + $ hg up -q 0 + $ echo 'd' > d + $ hg ci -Am 'D' + adding d + + $ hg tglog + @ 3: 'D' + | + | o 2: 'C' 2 + | | + | o 1: 'B' 1 + |/ + o 0: 'A' + + $ hg rebase --keepbranches --collapse -s 1 -d 3 + abort: cannot collapse multiple named branches + [255] +