[PATCH v3] rebase: make sure merge state is cleaned up for no-op rebases (issue5494)
Martin von Zweigbergk
martinvonz at google.com
Thu May 18 12:31:50 EDT 2017
On Thu, May 18, 2017 at 12:46 AM, Jeremy Fitzhardinge <jsgf at fb.com> wrote:
> # HG changeset patch
> # User Jeremy Fitzhardinge <jsgf at fb.com>
> # Date 1495093120 25200
> # Thu May 18 00:38:40 2017 -0700
> # Node ID 29906a25e4479521c47b07e0e53bf0bd7508720d
> # Parent 371f47ab1373be66072dfde447c93a81a6e5068f
> rebase: make sure merge state is cleaned up for no-op rebases (issue5494)
>
> If a rebase ends up doing a no-op commit, make sure the merge state is still cleaned up.
>
> diff --git a/hgext/rebase.py b/hgext/rebase.py
> --- a/hgext/rebase.py
> +++ b/hgext/rebase.py
> @@ -420,6 +420,11 @@
> editor=editor,
> keepbranches=self.keepbranchesf,
> date=self.date)
> + if newnode is None:
> + # If it ended up being a no-op commit, then the normal
> + # merge state clean-up path doesn't happen, so do it here.
> + # Fix issue5494
> + mergemod.mergestate.clean(repo)
> else:
> # Skip commit if we are collapsing
> repo.dirstate.beginparentchange()
> diff --git a/tests/test-rebase-collapse.t b/tests/test-rebase-collapse.t
> --- a/tests/test-rebase-collapse.t
> +++ b/tests/test-rebase-collapse.t
Sorry to be nit-picking, but the added test case doesn't seem to be
using --collapse, so it should probably go into another file.
test-rebase-interruptions.t seems appropriate.
> @@ -855,3 +855,38 @@
> summary: a
>
> $ cd ..
> +
> +Make sure merge state is cleaned up after a no-op rebase merge (issue5494)
> + $ cat >> $HGRCPATH <<EOF
> + > [extensions]
> + > rebase=
> + > EOF
These few lines may not be necessary now that this is inside an
existing test-rebase*.t file that has probably already done that.
> + $ hg init repo
> + $ cd repo
> + $ echo a >> a
nit: use just '>' to make it clearer that it is not appending to an
existing file
> + $ hg commit -qAm base
> + $ echo b >> a
> + $ hg commit -qm b
> + $ hg up .^
> + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
> + $ echo c >> a
> + $ hg commit -qm c
> + $ hg rebase -s 1 -d 2 --noninteractive
> + rebasing 1:fdaca8533b86 "b"
> + merging a
> + warning: conflicts while merging a! (edit, then use 'hg resolve --mark')
> + unresolved conflicts (see hg resolve, then hg rebase --continue)
> + [1]
> + $ echo a > a
> + $ echo c >> a
> + $ hg resolve --mark a
> + (no more unresolved files)
> + continue: hg rebase --continue
> + $ hg rebase --continue
> + rebasing 1:fdaca8533b86 "b"
> + note: rebase of 1:fdaca8533b86 created no changes to commit
> + saved backup bundle to $TESTTMP/repo/.hg/strip-backup/fdaca8533b86-7fd70513-backup.hg (glob)
> + $ hg resolve --list
> + $ test -e .hg/merge
> + [1]
> +
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
More information about the Mercurial-devel
mailing list