test-context-metadata.t
50 lines
| 1.6 KiB
| text/troff
|
Tads3Lexer
/ tests / test-context-metadata.t
Jun Wu
|
r34001 | 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 | ||||
Gregory Szorc
|
r36065 | > from mercurial import context, pycompat, registrar | ||
Jun Wu
|
r34001 | > cmdtable = {} | ||
> command = registrar.command(cmdtable) | ||||
Gregory Szorc
|
r36065 | > @command(b'metaedit') | ||
Jun Wu
|
r34001 | > def metaedit(ui, repo, arg): | ||
> # Modify commit message to "FOO" | ||||
Gregory Szorc
|
r36065 | > with repo.wlock(), repo.lock(), repo.transaction(b'metaedit'): | ||
> old = repo[b'.'] | ||||
> kwargs = dict(s.split(b'=', 1) for s in arg.split(b';')) | ||||
Augie Fackler
|
r40339 | > if b'parents' in kwargs: | ||
Martin von Zweigbergk
|
r37870 | > kwargs[b'parents'] = map(int, kwargs[b'parents'].split(b',')) | ||
Gregory Szorc
|
r36065 | > new = context.metadataonlyctx(repo, old, | ||
> **pycompat.strkwargs(kwargs)) | ||||
Jun Wu
|
r34001 | > 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 | ||||
Mads Kiilerich
|
r51618 | $ hg --config extensions.metaedit=$TESTTMP/metaedit.py metaedit 'parents=0' 2>&1 | grep -E '^RuntimeError' | ||
Jun Wu
|
r34001 | 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 | ||||