On Sun, Mar 12, 2017 at 04:44:06PM -0700, Mads Kiilerich wrote:
> # HG changeset patch
> # User Mads Kiilerich <m...@kiilerich.com>
> # Date 1489362241 25200
> #      Sun Mar 12 16:44:01 2017 -0700
> # Node ID e3ac848788e45a0530abfa8705740824db6f3444
> # Parent  42083ac9c3ed1b3be205e0f3a621787071587ae5
> rebase: allow rebasing children of wd to wd if a new branch has been set

Queued, but added a (bc) on this one. Thanks!

>
> The named branch of the leaf changeset can be changed by updating to it,
> setting the branch, and amending.
>
> But previously, there was no good way to *just* change the branch of several
> linear changes. If rebasing changes with another parent to '.', it would pick
> up a pending branch change up. But when rebasing changes that have the same
> parent, it would fail with 'nothing to rebase', even when the branch name was
> set differently.
>
> To fix this, allow rebasing to same parent when a branch has been set.
>
> diff --git a/hgext/rebase.py b/hgext/rebase.py
> --- a/hgext/rebase.py
> +++ b/hgext/rebase.py
> @@ -1224,7 +1224,12 @@ def buildstate(repo, dest, rebaseset, co
>          if commonbase == root:
>              raise error.Abort(_('source is ancestor of destination'))
>          if commonbase == dest:
> -            samebranch = root.branch() == dest.branch()
> +            wctx = repo[None]
> +            if dest == wctx.p1():
> +                # when rebasing to '.', it will use the current wd branch 
> name
> +                samebranch = root.branch() == wctx.branch()
> +            else:
> +                samebranch = root.branch() == dest.branch()
>              if not collapse and samebranch and root in dest.children():
>                  repo.ui.debug('source is a child of destination\n')
>                  return None
> diff --git a/tests/test-rebase-named-branches.t 
> b/tests/test-rebase-named-branches.t
> --- a/tests/test-rebase-named-branches.t
> +++ b/tests/test-rebase-named-branches.t
> @@ -387,4 +387,23 @@ rebase 'c1' to the branch head 'c2' that
>    o  0: '0'
>
>
> +  $ hg up -cr 1
> +  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
> +  $ hg branch x
> +  marked working directory as branch x
> +  $ hg rebase -r 3:: -d .
> +  rebasing 3:76abc1c6f8c7 "b1"
> +  rebasing 4:8427af5d86f2 "c2 closed" (tip)
> +  note: rebase of 4:8427af5d86f2 created no changes to commit
> +  saved backup bundle to 
> $TESTTMP/case2/.hg/strip-backup/76abc1c6f8c7-cd698d13-backup.hg (glob)
> +  $ hg tglog
> +  o  3: 'b1' x
> +  |
> +  | o  2: 'c1' c
> +  | |
> +  @ |  1: 'b2' b
> +  |/
> +  o  0: '0'
> +
> +
>    $ cd ..
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel@mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to