Mercurial > hg
view tests/test-context-metadata.t @ 40790:f07d4f94f098 stable
rebase: preserve working copy when redoing in-mem rebase on disk
When in-memory rebase runs into conflicts, we retry it on disk. But
before we do that, we abort the in-memory rebase. That is done because
even though it's mostly in memory, there are still a few state files
written (e.g. the merge state). We should make it not write those
files so we don't need to abort, but for the stable branch, let's
explicitly clear the state we need to clear instead of running the
usual abort code.
Differential Revision: https://phab.mercurial-scm.org/D5356
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Fri, 30 Nov 2018 16:21:37 -0800 |
parents | b8db53f786f0 |
children | 42d2b31cee0b |
line wrap: on
line source
Tests about metadataonlyctx $ hg init $ echo A > A $ hg commit -A A -m 'Add A' $ echo B > B $ hg commit -A B -m 'Add B' $ hg rm A $ echo C > C $ echo B2 > B $ hg add C -q $ hg commit -m 'Remove A' $ cat > metaedit.py <<EOF > from __future__ import absolute_import > from mercurial import context, pycompat, registrar > cmdtable = {} > command = registrar.command(cmdtable) > @command(b'metaedit') > def metaedit(ui, repo, arg): > # Modify commit message to "FOO" > with repo.wlock(), repo.lock(), repo.transaction(b'metaedit'): > old = repo[b'.'] > kwargs = dict(s.split(b'=', 1) for s in arg.split(b';')) > if b'parents' in kwargs: > kwargs[b'parents'] = map(int, kwargs[b'parents'].split(b',')) > new = context.metadataonlyctx(repo, old, > **pycompat.strkwargs(kwargs)) > new.commit() > EOF $ hg --config extensions.metaedit=$TESTTMP/metaedit.py metaedit 'text=Changed' $ hg log -r tip changeset: 3:ad83e9e00ec9 tag: tip parent: 1:3afb7afe6632 user: test date: Thu Jan 01 00:00:00 1970 +0000 summary: Changed $ hg --config extensions.metaedit=$TESTTMP/metaedit.py metaedit 'parents=0' 2>&1 | egrep '^RuntimeError' RuntimeError: can't reuse the manifest: its p1 doesn't match the new ctx p1 $ hg --config extensions.metaedit=$TESTTMP/metaedit.py metaedit 'user=foo <foo@example.com>' $ hg log -r tip changeset: 4:1f86eaeca92b tag: tip parent: 1:3afb7afe6632 user: foo <foo@example.com> date: Thu Jan 01 00:00:00 1970 +0000 summary: Remove A