2019-07-12 20:41:41 +03:00
|
|
|
$ . "$TESTDIR/library.sh"
|
|
|
|
|
|
|
|
$ newserver master
|
|
|
|
$ clone master client
|
|
|
|
$ cd client
|
|
|
|
$ echo a >> a
|
|
|
|
$ hg commit -Aqm a
|
|
|
|
|
|
|
|
Create an empty commit with a misconstructed memctx in the same transaction as a normal commit
|
|
|
|
$ cat >> $TESTTMP/repro.py <<EOF
|
|
|
|
> from edenscm.mercurial import context, registrar
|
|
|
|
> cmdtable = {}
|
|
|
|
> command = registrar.command(cmdtable)
|
|
|
|
>
|
|
|
|
> @command("^repro", [], "")
|
|
|
|
> def repro(ui, repo, *pats, **opts):
|
|
|
|
> def getfile(repo, memctx, path):
|
|
|
|
> if "path" == "a":
|
|
|
|
> return "d"
|
|
|
|
>
|
|
|
|
> return None
|
|
|
|
>
|
|
|
|
> with repo.wlock(), repo.lock(), repo.transaction('tr'):
|
|
|
|
> p1 = context.memctx(
|
|
|
|
> repo, # repository
|
|
|
|
> (repo['.'].node(), None), # parents
|
|
|
|
> "valid commit", # commit message
|
|
|
|
> ["a"], # files affected by this change
|
|
|
|
> getfile, # fn - see above
|
|
|
|
> user="author", # commit author
|
|
|
|
> ).commit()
|
|
|
|
>
|
|
|
|
> context.memctx(
|
|
|
|
> repo, # repository
|
|
|
|
> (repo[p1].node(), None), # parents
|
|
|
|
> "empty commit", # commit message
|
|
|
|
> ["fake"], # files affected by this change
|
|
|
|
> getfile, # fn - see above
|
|
|
|
> user="author", # commit author
|
|
|
|
> ).commit()
|
|
|
|
> EOF
|
2019-07-24 20:29:26 +03:00
|
|
|
$ hg repro --config extensions.repro="$TESTTMP/repro.py" 2>&1 | grep SystemError
|
2019-08-13 23:44:55 +03:00
|
|
|
[1]
|