diff --git a/mercurial/shelve.py b/mercurial/shelve.py --- a/mercurial/shelve.py +++ b/mercurial/shelve.py @@ -378,7 +378,7 @@ def _restoreactivebookmark(repo, mark): def _aborttransaction(repo, tr): """Abort current transaction for shelve/unshelve, but keep dirstate""" dirstatebackupname = b'dirstate.shelve' - repo.dirstate.savebackup(tr, dirstatebackupname) + repo.dirstate.savebackup(None, dirstatebackupname) tr.abort() repo.dirstate.restorebackup(None, dirstatebackupname) diff --git a/tests/test-shelve.t b/tests/test-shelve.t --- a/tests/test-shelve.t +++ b/tests/test-shelve.t @@ -1,4 +1,14 @@ #testcases stripbased phasebased +#testcases dirstate-v1 dirstate-v2 + +#if dirstate-v2 + $ cat >> $HGRCPATH << EOF + > [format] + > use-dirstate-v2=1 + > [storage] + > dirstate-v2.slow-path=allow + > EOF +#endif $ cat <> $HGRCPATH > [extensions] diff --git a/tests/test-shelve2.t b/tests/test-shelve2.t --- a/tests/test-shelve2.t +++ b/tests/test-shelve2.t @@ -1,6 +1,16 @@ #testcases stripbased phasebased #testcases abortflag abortcommand #testcases continueflag continuecommand +#testcases dirstate-v1 dirstate-v2 + +#if dirstate-v2 + $ cat >> $HGRCPATH << EOF + > [format] + > use-dirstate-v2=1 + > [storage] + > dirstate-v2.slow-path=allow + > EOF +#endif $ cat <> $HGRCPATH > [extensions]