Submitter | Mads Kiilerich |
---|---|
Date | March 12, 2017, 11:44 p.m. |
Message ID | <e3ac848788e45a0530ab.1489362246@localhost.localdomain> |
Download | mbox | patch |
Permalink | /patch/19260/ |
State | Accepted |
Headers | show |
Comments
On Sun, Mar 12, 2017 at 04:44:06PM -0700, Mads Kiilerich wrote: > # HG changeset patch > # User Mads Kiilerich <mads@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
Patch
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 ..